Freemarker与spring整合的基本使用

1. 添加依赖        

spring要与freemarker整合的话,需要两个包,一个是freemarker的jar包,另一个是spriing-context-support的Jar包,依赖如下:

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context-support</artifactId>
</dependency>
 <dependency>
	<groupId>org.freemarker</groupId>
	<artifactId>freemarker</artifactId>
</dependency>

其实,一般我们在开发中 spriing-context-support的依赖都会添加的,所以主要是添加freemarker的依赖即可。

2. 配置文件

2.1 spring配置freemarker

<!-- 配置freemarker -->
<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>

2.2 配置目的目录

 新建一个properties文件,用于保存目的目录,例如;

pageDir=d:\\item\\

2.3 准备模板文件

 模板文件的目录要在spring配置的目录下

如图:

3. 代码编写

操作步骤:

1)注入freeMarkerConfigurer与pageDir

2)注入mapper

3)通过freeMarkerConfigurer获取配置对象Configuration

4)根据配置对象获取模板对象

5)创建数据模型

6)创建目标文件的输出流对象

7)写数据到目标文件

@Service(timeout=50000)
public class ItemPageServiceImpl implements ItemPageService{
	
	@Resource
	private TbGoodsMapper goodsMapper;
	
	@Resource
	private TbGoodsDescMapper goodsDescMapper;
	
	@Resource
	private FreeMarkerConfigurer freeMarkerConfigurer;
	
	@Value("${pageDir}")
	private String pageDir;
	
	@Override
	public boolean genItemHtml(Long goodsId) {
		Writer out = null;
		try {
			// 获取配置对象
			Configuration configuration = freeMarkerConfigurer.getConfiguration();
			
			// 获取模板对象
			Template template = configuration.getTemplate("item.ftl");
			
			// 创建数据模型
			Map dataModel = new HashMap();
			TbGoods goods = goodsMapper.selectByPrimaryKey(goodsId);
			dataModel.put("item", goods);
			
			// 创建目标文件的输出流对象
			out = new FileWriter(pageDir + goodsId + ".html");
			
			// 写数据到目标文件
			template.process(dataModel,out);
			
			return true;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally{
			if(null != out){
				try {
					out.close();
				} catch (IOException e) {
					System.out.println("关闭流文件失败");
				}
			}
		}
		
		return false;
	}
	
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值