文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>freemaker应用笔记

freemaker应用笔记

时间:2010-09-09  来源:mmqzlj

项目中需要用到不同分类的数据使用不同的模板,需要在模板中动态显示数据。
一提到“模板”,第一个反应当然是使用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模板代码

<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>
排行榜 更多 +
谷歌卫星地图免费版下载

谷歌卫星地图免费版下载

生活实用 下载
谷歌卫星地图免费版下载

谷歌卫星地图免费版下载

生活实用 下载
kingsofpool官方正版下载

kingsofpool官方正版下载

赛车竞速 下载