使用Tiles后,我觉得使用Thymeleaf模板,但是,我似乎无法在HTML页面中使用任何表达式。
我尝试使用项目启动器快速启动Spring MVC,它在渲染到jsp时工作正常,但是没有使用带有Thymeleaf的HTML - 显示了HTML页面,所以它显然正在工作在某种程度上,但所有表达式都显示为简单文本而未进行评估。
这是servlet-context.xml的Thymeleaf部分:
<beans:bean id="templateResolver"
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<beans:property name="prefix" value="/WEB-INF/templates/" />
<beans:property name="suffix" value=".html" />
<beans:property name="templateMode" value="HTML5" />
</beans:bean>
<beans:bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
<beans:property name="templateResolver" ref="templateResolver" />
<beans:property name="additionalDialects">
<beans:set>
<beans:bean class="nz.net.ultraq.thymeleaf.LayoutDialect" />
</beans:set>
</beans:property>
</beans:bean>
<beans:bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
<beans:property name="templateEngine" ref="templateEngine" />
</beans:bean>
控制器只是快速启动MVC模板中生成的控制器:
@Controller
public class HomeController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );
return "home";
}
}
HTML只是通过额外的Thymleaf表达式从jsp复制而来:
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1"/>
<title>Insert title here</title>
</head>
<body>
<p> (HTML)The time on the server is ${serverTime}. </p>
#{serverTime}
<h1>th:text:="#{serverTime}"</h1>
</body>
</html>
我在这里缺少什么想法?感谢
答案 0 :(得分:0)
问题与你的html有关,Thymeleaf使用标准方言来定义以th:
开头的html属性
你的HTML主体应该是这样的:
<body>
<p>The time on the server is <span th:text="${serverTime}">time</span>.</p>
<h1 th:text="${serverTime}">Time again!</h1>
</body>
我建议您阅读教程“Using Thymeleaf”