<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 斯蒂芬
    撒的發生的  回復  更多評論
      

    主站蜘蛛池模板: 久久精品亚洲综合专区| 亚洲а∨天堂久久精品9966 | 免费在线观看自拍性爱视频| 精品成在人线AV无码免费看 | 亚洲国产精品ⅴa在线观看| 国产又大又粗又长免费视频 | 久久精品国产亚洲av高清漫画 | A级毛片高清免费视频在线播放| 国产成人麻豆亚洲综合无码精品 | 999在线视频精品免费播放观看| 亚洲成aⅴ人在线观看| 96免费精品视频在线观看| 久久亚洲AV成人无码国产| 久久WWW免费人成一看片| 亚洲三级中文字幕| 日本特黄特色免费大片| 黄色网址大全免费| 亚洲色成人网站WWW永久| 亚洲视频免费在线观看| 亚洲国产美女福利直播秀一区二区| 国产h视频在线观看免费| 亚洲欧美日韩中文高清www777| 国产一区二区三区在线免费| 久久精品无码专区免费| 亚洲香蕉免费有线视频| 精品久久久久久久免费加勒比| 一个人看的免费视频www在线高清动漫| 亚洲人成影院在线无码按摩店| 亚洲精品在线免费观看| 亚洲av无码一区二区三区四区| 国产偷窥女洗浴在线观看亚洲| 99久久人妻精品免费一区| 亚洲精品理论电影在线观看| 亚洲色欲久久久综合网东京热| 国产成人免费午夜在线观看| 亚洲AV无码一区二区大桥未久 | 日韩免费视频播播| 男的把j放进女人下面视频免费| 亚洲中文字幕在线无码一区二区| 免费a级黄色毛片| 222www免费视频|