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

    評論

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

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

    主站蜘蛛池模板: 亚洲第一街区偷拍街拍| 亚洲不卡视频在线观看| 中文字幕在线免费视频| 亚洲AV成人潮喷综合网| 四虎国产精品成人免费久久| 香蕉视频在线观看免费国产婷婷| 亚洲精品456人成在线| 好大好硬好爽免费视频| 亚洲最大无码中文字幕| 国产精品四虎在线观看免费| 美女被艹免费视频| 亚洲高清无码专区视频| 国产97视频人人做人人爱免费| 国产精品亚洲不卡一区二区三区| 国产福利电影一区二区三区,免费久久久久久久精 | 国产一精品一aⅴ一免费| 国产精品亚洲二区在线| mm1313亚洲精品国产| 亚洲一级片免费看| 在线观看亚洲人成网站| 日本在线高清免费爱做网站| 亚洲中文字幕一区精品自拍| 亚洲福利在线播放| 久章草在线精品视频免费观看| 亚洲视频在线免费看| 成年女人午夜毛片免费视频| 美女被艹免费视频| 亚洲AV无码精品无码麻豆| 波多野结衣免费在线| 日韩在线视精品在亚洲| 国产亚洲人成无码网在线观看| 永久黄色免费网站| 色噜噜噜噜亚洲第一| 亚洲成AV人片在WWW色猫咪 | 在线观看免费人成视频色| 亚洲av成人片在线观看| 亚洲精品成人片在线播放| 永久免费的网站在线观看| 一级做a爰全过程免费视频毛片| 日韩精品一区二区亚洲AV观看 | 特级淫片国产免费高清视频|