thymeleaf的java代码的用法
<!-- 静态页面模版引擎的依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
我们在这里要配置一个具体的模版
引擎的具体实现原理
下面 是java代码
@Service public class PageServiceImpl implements PageService { @Autowired // 这个其实是selvert private TemplateEngine templateEngine; @Value("${pagepath}") // 在这里读取配置文件中的路径 private String pagepath; @Autowired // 调用静态页面要切换的数据 private SkuFeignClient skuFeignClient; @Override public void createPathHtml(String skuId) throws Exception { // WebContext webContext = new WebContext(req, resp, this.getServletContext()); // webContext.setVariable("persons", persons); Context context = new Context(); //在thymeleaf 包下面的用来存放数据的 来切换静态页面的数据 上下问对象 Map<String,Object> data = this.data(skuId); // Map<String,Object> 的参数 将数据传到 静态页面域中 context.setVariables(data); // 创建一个文件路径 File file = new File(pagepath); if (!file.exists()){ // 路径存在就跳过,不存在就创建一个 file.mkdirs(); // } File dist = new File(file,skuId+".html"); // 创建一个文件 PrintWriter printWriter = new PrintWriter(dist,"utf-8"); // 创建一个答应流文件 templateEngine.process("item",context,printWriter); // 模版 数据源 打印流 } /** 这个方法是处理前端要显示的数据 */ public Map<String,Object> data(String skuId){ Map<String, Object> info = skuFeignClient.info(skuId); // 将values 里的json数据转化为 字符串 String skuJson = JSON.toJSONString(info.get("tbSkuDTO")); // 将字符串转化为对象 TbSkuDTO skuDTO = JSON.parseObject(skuJson, TbSkuDTO.class); String[] images = skuDTO.getImages().split(","); info.put("images",images); String spuJson = JSON.toJSONString(info.get("tbSpuDTO")); TbSpuDTO spuDTO = JSON.parseObject(spuJson, TbSpuDTO.class); // 将通用对象里面存的json对象转化为Map集合 Map specMap = JSON.parseObject(spuDTO.getSpecItems(), Map.class); info.put("specMap",specMap); return info; } }
Thymeleaf 通过在 html 标签中添加一个引用网址
<html lang="en" xmlns:th="http://www.thymeleaf.org"> // 在线加载这个Thymeleaf 的使用 来动态展示数据