首页 > 解决方案 > @RestController 不返回带有模型的 html

问题描述

我正在尝试使用 rest 和 Thymeleaf 实现 Spring Boot MVC 应用程序。在我的控制器类中,我有如下内容:

@RestController
public class UserController {
    
    @Autowired
    private GetUserInfoSrv userSrv;;
    
    @RequestMapping("/") **OR** @GetMapping
    public String getAllUsers(Model model) {
    
    List<UserRep> listUser = userSrv.getAllUsersSvc(); //this is returning correct output
    model.addAttribute("userList", listUser);
    return "Index";
}

我没有得到填充的值Index.html

<tbody>
    <tr th:each="users : ${userList}">
        <td th:text="${users.id}" />
        <td th:text="${users.firstName}">First Name</td>
        <td th:text="${users.lastName}">Last Name</td>
        <td th:text="${users.email}">Email Id</td>
        </td> -->
    </tr>
</tbody>

如果我使用@Controllerannotation 而不是@RestController,我可以在页面上查看结果。有什么理由@RestController不工作?我尝试在类级别和方法级别添加@RequestMapping/但没有任何效果。@GetMapping@RestController

标签: spring-bootspring-restcontroller

解决方案


休息控制器 = 控制器 + 响应体

因此,如果您放置响应控制器,那么它将在响应正文中发送数据。

因此,如果要返回网页,请改用控制器注释。

查看控制器和休息控制器之间的区别


推荐阅读