void

          Strus2 + Freemarker + Sitemesh 亂碼解決方案


          Struts2


          1.src目錄添加文件struts.properties
          <!-- 該屬性設置Struts 2是否支持動態方法調用,該屬性的默認值是true。如果需要關閉動態方法調用,則可設置該屬性為false。 -->
          struts.enable.DynamicMethodInvocation
          =true

          <!-- 該屬性指定視圖標簽默認的視圖主題,該屬性的默認值是xhtml。 -->
          struts.ui.theme
          =simple

          <!-- 是否struts過濾器中提供的靜態內容應該被瀏覽器緩存在頭部屬性中 -->
          struts.serve.static.browserCache
          =false

          <!-- 在url中產生 默認的includeParams -->
          struts.url.includeParams
          =none



          <!-- 當struts配置文件修改后,系統是否重新加載配文件,默認是false -->
          struts.configuration.xml.reload
          =true

          <!-- 開發模式下使用,這樣可以打印出更詳細的錯誤信息 -->   
          struts.devMode
          =true

          <!-- 修改資源文件后自動裝載 -->
          struts.i18n.reload
          =true

          <!-- 該屬性指定XSLT Result是否使用樣式表緩存。當應用處于開發階段時,該屬性通常被設置為true;當應用處于產品使用階段時,該屬性通常被設置為false。 -->
          struts.xslt.nocache
          =true

          <!-- action擴展名 -->
          struts.action.extension
          =jhtml

          <!-- 默認的國際化地區信息 -->
          struts.locale
          =zh_CN

          <!-- 國際化信息內碼 -->
          struts.i18n.encoding
          =UTF-8




          Freemarker


          1.設置
          <result name="error" type="freemarker">
              
          <param name="location">/WEB-INF/pages/console/AccountEdit.ftl</param>
              
          <param name="contentType">text/html;charset=GBK</param>
          </result>

          2.或者在src目錄添加文件freemarker.properties
          locale=zh_CN
          default_encoding
          =UTF-8
          number_format
          =#
          date_format
          =yyyy-MM-dd
          time_format
          =HH:mm:Ss
          datetime_format
          =yyyy-MM-dd HH\:mm\:Ss





          Sitemesh


          sitemesh在處理編碼時會使用系統的編碼,com.opensymphony.module.sitemesh.filter.TextEncoder文件
          private static final String DEFAULT_ENCODING = System.getProperty("file.encoding");
              
          private static final boolean JDK14 =
                      System.getProperty(
          "java.version").startsWith("1.4")
                      
          || System.getProperty("java.version").startsWith("1.5");

              
          public char[] encode(byte[] data, String encoding) throws IOException {
                  
          if (encoding == null) {
                      encoding 
          = DEFAULT_ENCODING;
                  }
                  
          //encoding = "UTF-8";
                  if (JDK14) {
                      
          return get14Buffer(data, encoding);
                  } 
          else {
                      
          return get13Buffer(data, encoding);
                  }
              }

          所以需要在sitemesh啟動前設置環境
          System.setProperty("file.encoding","UTF-8")





          Jsp


          <head>
          <%@ page contentType
          ="text/html; charset=utf-8" language="java"%>
          <%@ taglib uri
          ="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>
          </head>



          posted on 2011-06-07 12:40 void 閱讀(666) 評論(0)  編輯  收藏 所屬分類: Struts2

          主站蜘蛛池模板: 莱芜市| 民丰县| 定兴县| 锦屏县| 潞西市| 城市| 定远县| 兴文县| 个旧市| 西藏| 东丽区| 玛沁县| 庆城县| 浪卡子县| 区。| 平山县| 旅游| 雅安市| 汶上县| 张家港市| 松滋市| 通州区| 洪雅县| 闻喜县| 大邑县| 衢州市| 台湾省| 喜德县| 赤峰市| 建始县| 平罗县| 铁岭市| 乳山市| 日喀则市| 会同县| 三原县| 南木林县| 杭锦后旗| 富裕县| 满洲里市| 海安县|