如何在Spring Boot Thymeleaf模板引擎中链接另一个html页面?

时间:2018-06-16 19:52:42

标签: spring spring-mvc spring-boot thymeleaf

我有以下Spring Boot项目结构(使用Thymeleaf) -

enter image description here

现在,当我尝试从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)

请帮助找到问题。

3 个答案:

答案 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;
}