<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片永久免费观看| 美女18毛片免费视频| 免费无码又爽又刺激网站直播| 亚洲人成小说网站色| 99久久亚洲精品无码毛片| 国产亚洲免费的视频看| 亚洲成AV人片在线观看无码 | 亚洲性日韩精品一区二区三区| 日本h在线精品免费观看| 国产在线观看免费av站| 亚洲成AV人综合在线观看| jzzjzz免费观看大片免费| 在线视频免费观看高清| 亚洲性色AV日韩在线观看| 国产自产拍精品视频免费看| 国产偷国产偷亚洲高清在线| 亚洲精品成人片在线观看| 在线观看免费视频一区| 久久精品九九亚洲精品| 最近的中文字幕大全免费版| 国产精品亚洲综合天堂夜夜| 久久精品国产亚洲AV不卡| 中文字幕在线观看免费视频| 亚洲成a人片在线观看日本| 久久久久国产免费| 亚洲αv久久久噜噜噜噜噜| 岛国精品一区免费视频在线观看| 亚洲AV无码一区二区乱孑伦AS| 84pao强力永久免费高清 | va亚洲va日韩不卡在线观看| 亚洲大成色www永久网址| 全亚洲最新黄色特级网站| 在线看片免费人成视频播| 国产婷婷综合丁香亚洲欧洲| 成人浮力影院免费看| 亚洲最大中文字幕| 国产精品深夜福利免费观看| 一级毛片在线免费播放|