[英]How to return HTML page from RestController in Spring?
我正在學習 Spring 和 Rest web 服務,所以這讓我有點困惑。 這是我的 class:
RestController
@RequestMapping("/app-api/users")
public class UserApiController {
@Autowired
UserRepository userRepo;
@GetMapping
public Iterable<User> getUsers(){
return userRepo.findAll();
}
}
現在,當我在某些 rest 客戶端中測試此GET
請求時,我得到HTTP status 200
和JSON
格式的所有用戶。 但是我怎樣才能在HTML
中顯示它們? 我像普通的 controller 一樣嘗試了這個:
@GetMapping("/test")
public String getUsers(Model model) {
Iterable<User> users = userRepo.findAll();
model.addAttribute("users", users);
return "test-user";
}
但這不起作用,因為它只是將test-user
作為常規文本返回。 我的問題是從RestController
操作數據並將它們顯示在 html 中的正確方法和約定是什么?
Spring Web services are usually used to present an API who provide raw data for stand alone applications (eg angular, mobile app) to use, it can be confusing at first.
如果您希望您的應用程序提供 HTML 頁面,我建議您查看ThymeLeaf我想還有其他方法可以做同樣的事情,但它是我唯一知道的。 希望對您有所幫助,祝您有美好的一天!
您的
@GetMapping("/test")
public String getUsers(Model model) {
model.addAttribute("users", userRepo.findAll());
return "test-user";
}
應該 go 到@Controller
注釋 class(不是 @RestController)。
和
@GetMapping
public Iterable<User> getUsers(){
return userRepo.findAll();
}
到另一個@RestController
class。
這是兩種不同的方法。
您使用 @Controller 使用模板引擎之一(如提到的 Thymeleaf)在服務器端形成 HTML 頁面。
@RestController 用於 API 端點。 您通常會使用 javascript 發出 ajax 請求並在客戶端形成 HTML。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.