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;
}
}
freemarker生成静态页面例子
最新推荐文章于 2024-02-14 00:02:16 发布