日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Strut2和FreeMarker整合时的一些问题

發布時間:2024/9/27 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Strut2和FreeMarker整合时的一些问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在struts2與freemarker整合時,可以在項目的類路徑下放置freemarker.properties配置文件,

struts2會自動讀取(struts2封裝了)。今天用freemarker作為模板生成靜態文件時,發現并不讀取freemarker.properties配置文件。

看一下freemarker源碼,freemarker本身并不加載freemarker.properties配置文件,需要代碼中指定配置文件。

代碼如下:

?

Java代碼 ?
  • package?com.ldl.freemarker; ??
  • ??
  • import?java.io.BufferedWriter; ??
  • import?java.io.IOException; ??
  • import?java.io.OutputStreamWriter; ??
  • import?java.io.Writer; ??
  • import?java.util.HashMap; ??
  • import?java.util.Map; ??
  • import?java.util.Properties; ??
  • ??
  • import?freemarker.cache.ClassTemplateLoader; ??
  • import?freemarker.template.Configuration; ??
  • import?freemarker.template.DefaultObjectWrapper; ??
  • import?freemarker.template.Template; ??
  • import?freemarker.template.TemplateException; ??
  • ??
  • public?class?freemarkerTest?{ ??
  • ??
  • ????/** ?
  • ?????*?@param?args ?
  • ?????*?@throws?IOException? ?
  • ?????*?@throws?TemplateException? ?
  • ?????*/??
  • ????@SuppressWarnings("unchecked") ??
  • ????public?static?void?main(String[]?args)?throws?IOException,?TemplateException?{ ??
  • ????????Configuration?cfg?=?new?Configuration(); ??
  • ????????cfg.setTemplateLoader(new?ClassTemplateLoader(freemarkerTest.class,"")); ??
  • ????????cfg.setObjectWrapper(new?DefaultObjectWrapper()); ??
  • ????????//加載并設置freemarker.properties ??
  • ????????Properties?p?=?new?Properties(); ??
  • ????????p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("freemarker.properties")); ??
  • ????????cfg.setSettings(p); ??
  • ????????/*?在整個應用的生命周期中,這個工作你可以執行多次?*/??
  • ????????/*?獲取或創建模板*/??
  • ????????Template?temp?=?cfg.getTemplate("test.xml"); ??
  • ????????/*?創建數據模型?*/??
  • ????????Map?root?=?new?HashMap(); ??
  • ????????root.put("user",?"Big?Joe"); ??
  • ????????/*?將模板和數據模型合并?*/??
  • ????????Writer?out?=?new?BufferedWriter(new?OutputStreamWriter(System.out)); ??
  • ????????temp.process(root,?out); ??
  • ????????out.flush(); ??
  • ????} ??
  • }??
  • package com.ldl.freemarker;import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.HashMap; import java.util.Map; import java.util.Properties;import freemarker.cache.ClassTemplateLoader; import freemarker.template.Configuration; import freemarker.template.DefaultObjectWrapper; import freemarker.template.Template; import freemarker.template.TemplateException;public class freemarkerTest {/*** @param args* @throws IOException * @throws TemplateException */@SuppressWarnings("unchecked")public static void main(String[] args) throws IOException, TemplateException {Configuration cfg = new Configuration();cfg.setTemplateLoader(new ClassTemplateLoader(freemarkerTest.class,""));cfg.setObjectWrapper(new DefaultObjectWrapper());//加載并設置freemarker.propertiesProperties p = new Properties();p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("freemarker.properties"));cfg.setSettings(p);/* 在整個應用的生命周期中,這個工作你可以執行多次 *//* 獲取或創建模板*/Template temp = cfg.getTemplate("test.xml");/* 創建數據模型 */Map root = new HashMap();root.put("user", "Big Joe");/* 將模板和數據模型合并 */Writer out = new BufferedWriter(new OutputStreamWriter(System.out));temp.process(root, out);out.flush();} }

    ?測試代碼在附件中,freemarker.properties里的default_encoding值為utf-8,看控制臺打印的是否有亂碼,如果有亂碼說明生效了。

    總結

    以上是生活随笔為你收集整理的Strut2和FreeMarker整合时的一些问题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。