<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 管先飛 閱讀(4960) 評論(2)  編輯  收藏 所屬分類: Jfinal

    評論

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

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

    主站蜘蛛池模板: 久久久久久av无码免费看大片| 亚洲二区在线视频| 免费在线观看自拍性爱视频| 午夜dj在线观看免费视频| 亚洲免费黄色网址| 毛片a级毛片免费观看免下载| 亚洲人成网站18禁止久久影院 | 女人张开腿给人桶免费视频| 亚洲日本久久一区二区va| 久久综合AV免费观看| 亚洲精品理论电影在线观看| 女人被男人躁的女爽免费视频| 亚洲成熟丰满熟妇高潮XXXXX| 国产免费久久精品久久久| 一级毛片aa高清免费观看| 亚洲精品无码精品mV在线观看| 免费人成在线观看视频高潮 | 亚洲影视一区二区| 99热在线精品免费全部my| 亚洲综合色婷婷在线观看| 在线视频免费国产成人| 免费无码专区毛片高潮喷水| 中文字幕亚洲日本岛国片| 人妻无码久久一区二区三区免费| 久久综合亚洲鲁鲁五月天| 国产精品视频免费一区二区| 国产产在线精品亚洲AAVV| 亚洲情XO亚洲色XO无码| 国产成人精品免费视| 噜噜综合亚洲AV中文无码| 亚洲中文字幕久久精品无码APP| 无码av免费一区二区三区试看| 亚洲中文字幕日本无线码| 免费国产a国产片高清| 无人在线观看免费高清| 亚洲www在线观看| 亚洲伊人久久综合中文成人网| 久久国产精品免费看| 亚洲国产精品无码第一区二区三区| 免费人成网站在线高清| 99热在线观看免费|