下面是我的类,我必须使用它们@Configuration,@Controller因为Thymeleaf在整个应用程序中应该只有一个实例,否则我会得到例外.我的其他类都带有注释,@RequestScope所以我不能使用单例作用域bean.所以我有一个配置和控制器的混合来获得结果,但我觉得这是一个不好的做法.我将不胜感激任何帮助重构代码并删除不良做法.
UPDATE
我在用spring-boot 1.5.14.我使用以下方法处理模板并将处理后的模板保持为字符串.
@Controller
@Configuration
@EnableWebMvc
@ApplicationScope
public class MyThymeleafConfig {
@GetMapping("/view-template")
@ResponseBody
public void viewTemplates() {
Context context = new Context();
context.setVariable("mydata", "this is it");
String html = templateEngine().process("templates/view-to-process.html", context);
System.out.println(html);
}
/*
configuration for thymeleaf and template processing
*/
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(thymeleafTemplateResolver());
return templateEngine;
}
@Bean
public SpringResourceTemplateResolver thymeleafTemplateResolver() {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setPrefix("classpath:");
templateResolver.setSuffix(".html");
templateResolver.setCacheable(false);
templateResolver.setTemplateMode(TemplateMode.HTML); …Run Code Online (Sandbox Code Playgroud)