freemarker初次使用
1.引入jar包
<!--freemarker-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
2.spring.xml檔案引入
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/ftl/" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
3.demo展示
package com.offcn.page.service.imp;
import com.alibaba.dubbo.config.annotation.Service;
import com.offcn.mapper.TbGoodsDescMapper;
import com.offcn.mapper.TbGoodsMapper;
import com.offcn.mapper.TbItemCatMapper;
import com.offcn.mapper.TbItemMapper;
import com.offcn.page.service.ItemPageService;
import com.offcn.pojo.TbGoods;
import com.offcn.pojo.TbGoodsDesc;
import com.offcn.pojo.TbItem;
import com.offcn.pojo.TbItemExample;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfig;
import java.io.FileWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class ItemPageServiceImpl implements ItemPageService {
//引入屬性檔案
@Value("${pagedir}")
private String pagedir;
@Autowired
private FreeMarkerConfig freeMarkerConfig;
@Autowired
private TbGoodsMapper goodsMapper;
@Autowired
private TbGoodsDescMapper goodsDescMapper;
@Autowired
private TbItemCatMapper itemCatMapper;
@Autowired
private TbItemMapper itemMapper;
@Override
public boolean genItemHtml(Long goodsId) {
try {
//利用介面呼叫方法,實現實現類
Configuration configuration = freeMarkerConfig.getConfiguration();
//建立模板物件
Template template = configuration.getTemplate("item.ftl");
//定義資料來源
Map dataModel=new HashMap<>();
//1.載入商品表資料
TbGoods goods = goodsMapper.selectByPrimaryKey(goodsId);
dataModel.put("goods", goods);
//2.載入商品擴充套件表資料
TbGoodsDesc goodsDesc = goodsDescMapper.selectByPrimaryKey(goodsId);
dataModel.put("goodsDesc", goodsDesc);
//3.商品分類
String itemCat1 = itemCatMapper.selectByPrimaryKey(goods.getCategory1Id()).getName();
String itemCat2 = itemCatMapper.selectByPrimaryKey(goods.getCategory2Id()).getName();
String itemCat3 = itemCatMapper.selectByPrimaryKey(goods.getCategory3Id()).getName();
dataModel.put("itemCat1", itemCat1);
dataModel.put("itemCat2", itemCat2);
dataModel.put("itemCat3", itemCat3);
//4.SKU列表
TbItemExample example=new TbItemExample();
TbItemExample.Criteria criteria = example.createCriteria();
criteria.andStatusEqualTo("1");//狀態為有效
criteria.andGoodsIdEqualTo(goodsId);//指定SPU ID
example.setOrderByClause("is_default desc");//按照狀態降序,保證第一個為預設
List<TbItem> itemList = itemMapper.selectByExample(example);
dataModel.put("itemList", itemList);
Writer out=new FileWriter(pagedir+goodsId+".html");
template.process(dataModel, out);
out.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
相關文章
- websocket初次使用Web
- 初次使用UbuntuUbuntu
- Windows上TDengine初次使用Windows
- FreeMarker
- 利用Docker部署管理LDAP及其初次使用DockerLDA
- MYSQL安裝教程及sqlyog初次使用MySql
- FreeMarker入門
- itextpdf freemarker渲染
- FreeMarker模板引擎
- 我是如何使用freemarker生成Word檔案的?
- 使用freemarker將echarts圖片儲存到word中Echarts
- 初次學習 Docker Volume 的基本使用 (四)Docker
- Java使用FreeMarker模版技術動態生成word實踐Java
- 初次邂逅 EasyExcelExcel
- Flutter初次探索Flutter
- 【IdentityServer】初次相遇IDEServer
- freemarker 生成前端檔案前端
- Java模板引擎之FreeMarkerJava
- 關於FreeMarker模板注入
- freemarker 生成 Java 程式碼Java
- springboot模版thymeleaf+freemarkerSpring Boot
- 使用 C# 9 的records作為強型別ID - 初次使用C#型別
- 初次接觸 CookieCookie
- 初次入坑 ReactReact
- 初次體驗 MeiliSearch
- FreeMarker 之快速入門Demo
- java Freemarker 模版引擎工具類Java
- Spring Boot 整合 FreeMarker 例項Spring Boot
- 初次使用CxImage類庫、VC6配置UNICODE的方法Unicode
- spring原始碼分析之freemarker整合Spring原始碼
- Spring Boot (三)模板引擎FreeMarker整合Spring Boot
- 初次使用EasyUI框架外掛遇到的問題及總結UI框架
- Git 的安裝與初次使用 —— Git 學習筆記 03Git筆記
- Blazor 釋出WebAssembly使用Brotli 壓縮提升初次載入速度BlazorWeb
- 初次接觸express框架Express框架
- 一、初次接觸javaJava
- Python Kconfiglib初次學習Python
- 從官方文件去學習之FreeMarker