<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    guanxf

    我的博客:http://blog.sina.com.cn/17learning

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      71 隨筆 :: 1 文章 :: 41 評論 :: 0 Trackbacks
    1、Controller:
                   Map<String, Object> rootMap = new HashMap<String, Object>();
    ootMap.put("list",getMusicPublisList(page.getList()));
    String templateName="appweb/music/index.ftl";
      Render appRender=new AppFreeMarkerRender(rootMap,templateName);
      this.render(appRender);
    2、AppFreeMarkerRender(在FreeMarkerRender上修改):
    package com.microcorecn.common.utils;
    import java.io.PrintWriter;
    import java.util.Enumeration;
    import java.util.HashMap;
    import java.util.Locale;
    import java.util.Map;
    import java.util.Properties;
    import javax.servlet.ServletContext;
    import com.jfinal.render.Render;
    import com.jfinal.render.RenderException;
    import freemarker.template.Configuration;
    import freemarker.template.ObjectWrapper;
    import freemarker.template.Template;
    import freemarker.template.TemplateException;
    import freemarker.template.TemplateExceptionHandler;
    /**
     * FreeMarkerRender.
     */
    public class AppFreeMarkerRender extends Render {
    private static final long serialVersionUID = -7649769283048920381L;
    private transient static final String encoding = getEncoding();
    private transient static final String contentType = "text/html; charset=" + encoding;
    private String templateName;
    private Map<String, Object>  rootMap;
    public AppFreeMarkerRender(Map<String, Object> rootMap, String templateName) {
      this.templateName=templateName;
      this.rootMap=rootMap;
    }
        
    @SuppressWarnings({"unchecked", "rawtypes"})
    public void render() {
    response.setContentType(contentType);
            Enumeration<String> attrs = request.getAttributeNames();
    Map root = new HashMap();
    while (attrs.hasMoreElements()) {
    String attrName = attrs.nextElement();
    root.put(attrName, request.getAttribute(attrName));
    }
             root.putAll(rootMap);
             
    PrintWriter writer = null;
            try {
    Template template = FreemarkerUtil.getAppConfiguration().getTemplate(this.templateName);
    writer = response.getWriter();  //一邊請求,一邊render
    template.process(root, writer); // Merge the data-model and the template
    } catch (Exception e) {
    throw new RenderException(e);
    }
    finally {
    if (writer != null)
    writer.close();
    }
    }
    }
    3、FreemarkerUtil :
    package com.microcorecn.common.utils;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.StringWriter;
    import java.io.Writer;
    import java.util.Enumeration;
    import java.util.HashMap;
    import java.util.Map;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import com.jfinal.kit.PathKit;
    import com.jfinal.render.FreeMarkerRender;
    import freemarker.cache.FileTemplateLoader;
    import freemarker.template.Configuration;
    import freemarker.template.DefaultObjectWrapper;
    import freemarker.template.Template;
    /**
     * freemarker生成html的工具類
     * 
     * @author Administrator
     * 
     */
    public class FreemarkerUtil {
    //保存所有參數,js路徑,cs路徑等
    private static Map<String, Object> releaseParams = new HashMap<String, Object>();
    static{
    //releaseParams.put("csspath", "");
    }
    //配置
    private static Configuration config = null;
    private static Configuration appConfig = null;
    /**
    * appConfig配置所有參數
    * 重寫freemarker中的  reader方法,讀取該配置文件
    * @return
    */
    public static Configuration getAppConfiguration()
    {
    if(appConfig == null)
    {
    //從freemarker中獲取所有配置
    appConfig = (Configuration)FreeMarkerRender.getConfiguration().clone();
    try {
    //設置模板路徑
    /* config.setDirectoryForTemplateLoading(new File(PathKit.getWebRootPath()));
    config.setObjectWrapper(new DefaultObjectWrapper());*/
    appConfig.setDirectoryForTemplateLoading(new File(PathKit.getWebRootPath()+"/WEB-INF/views/"));
    appConfig.setObjectWrapper(new DefaultObjectWrapper());   
    } catch (IOException e) {
    // TODO log
    }
    }
    return appConfig;
    }
    posted on 2013-05-19 14:16 管先飛 閱讀(4970) 評論(2)  編輯  收藏 所屬分類: Jfinal

    評論

    # re: Jfinal讀取Freemarker后renderHtml 源碼 2015-09-23 15:53 斯蒂芬
    撒的發生  回復  更多評論
      

    # re: Jfinal讀取Freemarker后renderHtml 源碼 2015-09-23 15:53 斯蒂芬
    撒的發生的  回復  更多評論
      

    主站蜘蛛池模板: 日本在线观看免费高清| 亚洲国产综合91精品麻豆| 国产免费午夜a无码v视频| 四虎在线免费播放| 免费观看一级毛片| 国产一区视频在线免费观看| 在线视频免费国产成人| 凹凸精品视频分类国产品免费| 国产乱色精品成人免费视频| 亚洲?V乱码久久精品蜜桃| 免费在线观看黄色毛片| 亚洲精品456播放| 亚洲免费观看视频| 亚洲ⅴ国产v天堂a无码二区| 久久亚洲国产成人精品性色| 亚洲人成人77777在线播放| 亚洲国产亚洲片在线观看播放| 亚洲三级在线播放| 亚洲国产精品精华液| 三年片在线观看免费观看大全中国| 国产精品免费在线播放| 成人无码a级毛片免费| 最近中文字幕mv免费高清视频8| 国产精品成人观看视频免费| 拍拍拍又黄又爽无挡视频免费| 国产免费变态视频网址网站| 在线观看亚洲精品福利片| 亚洲AV无码不卡在线播放| 亚洲AV无码国产精品色| 日韩精品亚洲专区在线影视| 国产精品美女久久久免费| 99在线免费观看视频| 成全影视免费观看大全二| 亚洲国产天堂久久久久久| 亚洲av午夜成人片精品网站| 亚洲人6666成人观看| 美女被羞羞网站免费下载| 在线观看特色大片免费网站| 台湾一级毛片永久免费| 免费一级特黄特色大片| 日韩av无码免费播放|