freemaker应用笔记
时间:2010-09-09 来源:mmqzlj
项目中需要用到不同分类的数据使用不同的模板,需要在模板中动态显示数据。
一提到“模板”,第一个反应当然是使用freemarker,现把自己的使用情况记录下来以备参考。
1.Action代码
一提到“模板”,第一个反应当然是使用freemarker,现把自己的使用情况记录下来以备参考。
1.Action代码
public void getHtmlById(){
Map<String, Object> params = new HashMap<String, Object>();
params.put("newsList", getNews());
params.put("categoryId", categoryId);
params.put("categoryName", categoryName);
Configuration cfg = new Configuration();
cfg.setServletContextForTemplateLoading(ServletActionContext.getServletContext(), "WEB-INF/templates");
try {
Template t = cfg.getTemplate(categoryId+".ftl");
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=UTF-8");
Writer out = response.getWriter();
t.process(params, out);
} catch (IOException e1) {
logger.error("解析模板错误,IOException!",e1);
} catch (TemplateException e1) {
logger.error("解析模板错误,TemplateException!",e1);
}
}
/**
* 取20条信息记录
* @return
*/
private List<News> getNews(){
PageRequest<News> pageRequest = new PageRequest<News>();
pageRequest.setPageNo(1);
pageRequest.setPageSize(20);
News news = new News();
news.setCategoryId(categoryId.intValue());
pageRequest.setSearchDo(news);
return newsManager.getPage(pageRequest).getResult();
}
2.xx.ftl模板代码
Map<String, Object> params = new HashMap<String, Object>();
params.put("newsList", getNews());
params.put("categoryId", categoryId);
params.put("categoryName", categoryName);
Configuration cfg = new Configuration();
cfg.setServletContextForTemplateLoading(ServletActionContext.getServletContext(), "WEB-INF/templates");
try {
Template t = cfg.getTemplate(categoryId+".ftl");
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=UTF-8");
Writer out = response.getWriter();
t.process(params, out);
} catch (IOException e1) {
logger.error("解析模板错误,IOException!",e1);
} catch (TemplateException e1) {
logger.error("解析模板错误,TemplateException!",e1);
}
}
/**
* 取20条信息记录
* @return
*/
private List<News> getNews(){
PageRequest<News> pageRequest = new PageRequest<News>();
pageRequest.setPageNo(1);
pageRequest.setPageSize(20);
News news = new News();
news.setCategoryId(categoryId.intValue());
pageRequest.setSearchDo(news);
return newsManager.getPage(pageRequest).getResult();
}
2.xx.ftl模板代码
<div class="bar">${categoryName}</div>
<ul>
<#list newsList as column>
<li>${column.title}<span class="rec"><a href="javascript:void(0)" onclick="setTop(${column.id?c},false)">推荐</a></span></li>
<#if column_index = 9 ><#break></#if>
</#list>
</ul>
<ul>
<#list newsList as column>
<li>${column.title}<span class="rec"><a href="javascript:void(0)" onclick="setTop(${column.id?c},false)">推荐</a></span></li>
<#if column_index = 9 ><#break></#if>
</#list>
</ul>
相关阅读 更多 +
排行榜 更多 +