簡體   English   中英

如何從 Spring 中的 RestController 返回 HTML 頁面?

[英]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 200JSON格式的所有用戶。 但是我怎樣才能在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM