SpringBoot:Thymeleaf集成
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
配置ClassLoaderTemplateResolver:
/*** <b>Function: </b> todo** @program: TemplateConfig * @Package: com.kingbal.tohtml.tst* @author: dingcho* @date: 2024/09/06* @version: 1.0* @Copyright: 2024 www.kingbal.com Inc. All rights reserved.*/
@Configuration
public class TemplateConfig {@Beanpublic ClassLoaderTemplateResolver templateResolver() {ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();// 设置模板引擎,例如THYMELEAF或者FREEMARKERtemplateResolver.setPrefix("templates/");templateResolver.setSuffix(".html");templateResolver.setTemplateMode(TemplateMode.HTML);// 可以设置其他属性,例如模板编码等templateResolver.setCharacterEncoding("UTF-8");return templateResolver;}@Beanpublic SpringTemplateEngine templateEngine(ClassLoaderTemplateResolver templateResolver) {SpringTemplateEngine templateEngine = new SpringTemplateEngine();templateEngine.setTemplateResolver(templateResolver);return templateEngine;}@Beanpublic ViewResolver viewResolver(SpringTemplateEngine templateEngine) {ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();viewResolver.setTemplateEngine(templateEngine);return viewResolver;}
}
在这个配置中,所有的模板文件都被放置在src/main/resources/templates目录下,并且都有.html后缀。ClassLoaderTemplateResolver会自动查找这些模板
在Controller中使用模板:
/*** <b>Function: </b> todo** @program: HtmlController* @Package: com.kingbal.tohtml.tst.controller* @author: songjianlin* @date: 2024/08/09* @version: 1.0* @Copyright: 2024 www.kingbal.com Inc. All rights reserved.*/
@RestController
@RequestMapping("/v1/index/html")
@AllArgsConstructor
public class HtmlController {private final TemplateEngine templateEngine;@PostMapping("/create")public voidcreate() {String path = "D:\\git\\html";File file=new File(path);if(!file.exists()){file.mkdir();}FileWriter writer = new FileWriter(file.getPath() + "\\index.html");//创建Context对象(存放Model)Context context = new Context();context.setVariable("title", "测试列表");templateEngine.process("index", context, writer);}
}