当前位置: 首页 > 知识库问答 >
问题:

Spring Boot和Thymeleaf不处理模板

华子航
2023-03-14

我有一个应用程序,这是Spring书签教程的简化版本。在其中,控制器被注释为@RestController,并且应用程序只返回JSON。

我增加了通过Thymeleaf模板返回HTML的功能。我的模板正在返回,但它们似乎没有被Thymeleaf处理。我使用的是spring boot,我的构建中有spring boot starter thymeleaf。gradle文件,但这似乎还不够。

例如,下面是根目录的一个简单控制器:

package com.latencyzero.hoa;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;



@Controller
@RequestMapping("/")
class
MainController
{
    @RequestMapping(method = RequestMethod.GET)
    ModelAndView
    index()
    {
        ModelAndView mav = new ModelAndView("index");
        mav.addObject("version", "0.1");
        return mav;
    }
}

src/main/resources/templates/index。html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>HOA v${version}</title>
</head>
<body>
<h1>HOA v${version}</h1>
</body>
</html>

结果呈现以下页面:

我发现的例子表明,这是我需要做的全部,但它不起作用。我需要一些额外的配置注释吗?

谢谢

共有2个答案

酆俊远
2023-03-14

当我用@Controller替换@restController时,我也遇到了类似的问题,它的工作与预期的一样。

梁丘霖
2023-03-14

这是基于胸腺叶教程的2个选项

内联表达式-Main Controller.java

package com.latencyzero.hoa;

import org.springframework.stereotype.Controller;    
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/")
class MainController
{
    @RequestMapping(method = RequestMethod.GET)
    ModelAndView
    index()
    {
        ModelAndView mav = new ModelAndView("index");
        mav.addObject("version", "0.1");
        return mav;
    }
}


-索引。html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8"/>
    <title>HOA v[[${version}]]</title>
</head>
<body>
<h1>HOA v[[${version}]]</h1>
</body>
</html>

自然模板-Main Controller.java

package com.latencyzero.hoa;

import org.springframework.stereotype.Controller;    
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/")
class MainController
{
    @RequestMapping(method = RequestMethod.GET)
    ModelAndView
    index()
    {
        ModelAndView mav = new ModelAndView("index");
        mav.addObject("hoa_version", "HOA v0.1");
        return mav;
    }
}


-索引。html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8"/>
    <title th:text="${hoa_version}">Default Title</title>
</head>
<body>
<h1 th:text="${hoa_version}">Default Header</h1>
</body>
</html>
 类似资料:
  • 本文向大家介绍SpringBoot中的Thymeleaf模板,包括了SpringBoot中的Thymeleaf模板的使用技巧和注意事项,需要的朋友参考一下 一、前言     Thymeleaf 的出现是为了取代 JSP,虽然 JSP 存在了很长时间,并在 Java Web 开发中无处不在,但是它也存在一些缺陷: 1、JSP 最明显的问题在于它看起来像HTML或XML,但它其实上并不是。大多数的JS

  • 我在看一本书《Spring在行动》第5版,但我认为这是一个错误。 这是这本书的GitHub。我已经到了第3章tacos-jdbc代码源码 submit my order时突然出现错误: OrderController: 和OrderForm:

  • ValidationExceptionHandler.java 当我运行我的代码并传递无效的电子邮件地址时,我会得到以下异常。从不执行HandleConstraintVilvation中的代码。异常中返回的http状态是500,但我想返回400。你知道我怎么才能做到吗?

  • 我想在HTML中显示一个请求的对象,我得到了一个错误,我不知道是什么原因导致了我的错误。谷歌帮不上忙,现在我试着问你。我认为错误不是来自我的表,因为我把它注释掉了,错误仍然是Occour。该错误也不是来自“http://localhost:8081/simulation”,因为我使用有效值重新接收了一个有效的JSON。谢谢你的帮助:)。 下面是我的代码: 我通过调用“http://localhos

  • 我们可以使用StringTemplateResolver用Icontext填充字符串模板吗。如果是这样,我们该怎么办?TemplateProcessingParameters和IResourceResolver已从Thymeleaf 3中删除。任何可行的例子都会大有帮助吗? 我已经遵循了这个例子,它在Thymeleaf 2中工作得很好 有没有办法使Spring Thymeleaf进程成为字符串模板

  • 本文向大家介绍springboot中thymeleaf模板使用详解,包括了springboot中thymeleaf模板使用详解的使用技巧和注意事项,需要的朋友参考一下 这篇文章将更加全面详细的介绍thymeleaf的使用。thymeleaf 是新一代的模板引擎,在spring4.0中推荐使用thymeleaf来做前端模版引擎。 thymeleaf介绍 简单说, Thymeleaf 是一个跟 Vel