freemarker生成静态页面例子

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;


import javax.servlet.ServletContext;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.ServletContextAware;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;


import freemarker.template.Configuration;
import freemarker.template.Template;


public class freemarkerUtil implements ServletContextAware{
	@Autowired
	private goodsDao goodsDao;
	
	private ServletContext servletContext;
	@Autowired
	private FreeMarkerConfigurer configurer;
//	<!-- 配置FreeMarkerConfigurer -->
//	<bean id="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
//		<!-- 模板所在目录 -->
//		<property name="templateLoaderPath" value="/ftl/"></property>
//		<!-- 设置默认编码 -->
//		<property name="defaultEncoding" value="UTF-8"></property>
//	</bean>
	public void createHtml(Integer id){
		//1.通过id查询该商品实体
		Goods goods = goodsDao.queryOne(id);
		//2.生成模板
		Writer out = null;
		try {
			//加载模板,生成html静态页面
			//1.设置模板路径
			Configuration configuration = configurer.createConfiguration();
			//2.加载模板
			Template template = configuration.getTemplate("goodsdetil.ftl");
			//3.定义数据
			//普通字符串
			Map<String, Object> root = new HashMap<String, Object>();
			root.put("goods",goods);
			//4.定义输出
			out = new FileWriter(servletContext.getRealPath("/")+"/html/"+goods.getId()+".html");
			template.process(root, out);
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			//5.关闭资源
			try {
				out.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	public void setServletContext(ServletContext servletContext) {
		this.servletContext = servletContext;
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值