我有以下Spring Boot项目结构(使用Thymeleaf) -
现在,当我尝试从defect-details.html
引用index.html
时,无法找到它。我尝试了以下所有选项无济于事:
1。<a th:href="@{/defect-details.html}">
2。<a th:href="@{defect-details.html}">
3。<a href="defect-details.html">
每次说There was an unexpected error (type=Not Found, status=404)
。
请帮助找到问题。
答案 0 :(得分:2)
(正如 JBNizet 在评论中指出的)根据MVC设计架构,使用控制器渲染视图而不是视图到视图链接更好。我所要做的就是用以下代码更新我的Controller类:
@RequestMapping("/defect-details")
public String defectDetails() {
return "defect-details";
}
在Thymeleaf模板中:
<a th:href="@{defect-details}">
答案 1 :(得分:1)
您始终可以使用HTML标记链接Thymeleaf中的两个页面, 但是,如果不首先通过spring控制器,您将无法直接从一个HTML页面转到特定的HTML页面。您必须向Spring Controller发出请求以获取该页面。为了完成它: -
1。)<a href="defect-details.html"> //on your index.html
2.。)在Spring Controller上获取此请求,为您打开defect-details.html页面: -
@RequestMapping("/defect-details")
public String defectDetails() {
return "defect-details"; //defect-details.html page name to open it
}
答案 2 :(得分:0)
您还可以使用ModelAndView
类:
@RequestMapping("/defect-details")
public ModelAndView defect-details(){
ModelAndView mv = new ModelAndView();
mv.setViewName("defect-details");
return mv;
}