这可能是由于Thymeleaf模板引擎未正确解析模板字面值中的表达式导致的。为了解决这个问题,请确保您已正确设置了Thymeleaf的配置,并在模板中使用正确的语法来引用表达式。
例如,如果你想在模板中显示一个变量的值,你可以使用Thymeleaf的表达式语法:
请注意,表达式应该用${}
括起来,而不是用#{}
或{}
。此外,你还需要正确设置Sping MVC的配置,以便支持Thymeleaf模板引擎。以下是一个示例配置:
@Configuration
public class MvcConfig implements WebMvcConfigurer {
@Bean
public ITemplateResolver templateResolver() {
SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".html");
resolver.setTemplateMode(TemplateMode.HTML);
resolver.setCacheable(false);
return resolver;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setTemplateResolver(templateResolver());
return engine;
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(templateEngine());
registry.viewResolver(resolver);
}
}
这里我们使用SpringResourceTemplateResolver来解析模板,指定了模板文件的前缀和后缀,并设置了模板的缓存方式。然后我们定义了一个SpringTemplateEngine,将模板解析器传递给它,并在configureViewResolvers()方法中将ThymeleafViewResolver添加到视图解析器列表中。
最后,我们可以使用如下代码在控制器中返回一个模型:
@GetMapping("/")
public String