追隨Java
          簡單的事情重復做,就會產生累積效應!
          posts - 260,  comments - 338,  trackbacks - 0
                暈了一上午碰到了從JSP頁面請求到ACTION中出現了中文問題。找了很久也不知道到底問題出現在那,郁悶呀。總覺得很奇怪,因為我是原來的系統(中文傳遞沒有問題)中加入一些頁面,也添加了一個Action,可它有中文問題了。想了很久也不能解決,真是呀。最后,我干脆把原來的系統還原,然后重新在系統中添加所要修改的東東,居然沒有問題了。
          總結一下原系統解決亂碼的方案:
             1)采用國際化。這樣能解決頁面的中文亂碼問題。

              a)把頁面中所出現的中文寫到屬性文件中,例如:messages_zh.properties,
          shipment.system = 出貨小系統
          shipment.jsnum 
          = 條碼
          shipment.stylenum 
          = 款式
              
                           b)native2ascii把文字轉換成ascii碼,
          D:\project\shipment\web\WEB-INF\classes>native2ascii messages_zh.properties mess
          ages_zh_CN.properties

              c)頁面統一采用utf-8編碼
          <%@ page pageEncoding="utf-8" contentType="text/html;charset=utf-8" %>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

               d)在web.xml文件中引入JSTL與WEBWORK集成的類
           <!-- Define the basename for a resource bundle for I18N -->
              
          <context-param>
                  
          <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
                  
          <param-value>messages</param-value>
              
          </context-param>

                 <!-- 采用filter編碼轉換-->
              
          <filter>
                          
          <filter-name>Set Character Encoding</filter-name>
                          
          <filter-class>org.appfuse.web.SetCharacterEncodingFilter</filter-class>
                  
          </filter>

                  
          <filter-mapping>
                          
          <filter-name>Set Character Encoding</filter-name>
                          
          <url-pattern>/*</url-pattern>
                  
          </filter-mapping>

                
                        e)filter類把請求的統一轉換成utf-8,(在2.1.7版本以后自己處理好了)如下:
          package org.appfuse.web;

          /**
           * Created by IntelliJ IDEA.
           * User: Administrator
           * Date: 2005-8-11
           * Time: 13:17:00
           * To change this template use File | Settings | File Templates.
           
          */

          import java.io.IOException;

          import javax.servlet.Filter;
          import javax.servlet.FilterChain;
          import javax.servlet.FilterConfig;
          import javax.servlet.ServletException;
          import javax.servlet.ServletRequest;
          import javax.servlet.ServletResponse;

          public class SetCharacterEncodingFilter implements Filter{

              
          public void init(FilterConfig arg0) throws ServletException {

              }


              
          public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
                  
          /*
                   * Servlet編碼
                   
          */

                  request.setCharacterEncoding(
          "utf-8"); 
                  chain.doFilter(request,response);
              }


              
          public void destroy() {

              }


          }

              
                          ee)在web-inf\classes中的webwork.properties文件(可能這個就能取代上面的,有待測試)中加入
          webwork.custom.i18n.resources=messages
          webwork.locale
          =zh_CN
          webwork.i18n.encoding
          =GBK
           
                          f)在頁面中還需添加JSTL標簽,當然在classpath下要加入相關的類包
          <%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
             
             g)現在在頁面中就可以采用jstl的EL來引入了
          <fmt:message key="shipment.shipment"/>
                  
                  2)把tomcate下面的conf文件夾下的server.xml文件中加入 URIEncoding="GBK",有了上面的可能這一個也是多余的,如:
           <Connector 
          port="8080"               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                         enableLookups
          ="false" redirectPort="8443" acceptCount="100"
                         debug
          ="0" connectionTimeout="20000" 
                         disableUploadTimeout
          ="true" URIEncoding="GBK" />
             
           
            現在想想,當時可能我太性急,有點慌,盲目,所以沒有注意到原來我在系統中加入了filter來轉換編碼(utf-8),而在我新添加的頁面中沒有注意到這一點,所以怎么處理還是有亂碼。所以在以后的開發當中一定要沉著冷靜專注,要弄清其所以然,才能順利的解決好問題。
          posted on 2005-08-31 13:39 Harryson 閱讀(1316) 評論(0)  編輯  收藏 所屬分類: WebWork

          <2005年8月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(10)

          隨筆分類(319)

          AJAX

          Coffee House

          CSS

          Java

          JavaScript

          Open Source

          ProjectManagement

          友情Blog

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 班戈县| 林州市| 金乡县| 辽阳县| 大同市| 闻喜县| 新野县| 毕节市| 杂多县| 阿克| 赤峰市| 霍州市| 鸡泽县| 海伦市| 上思县| 青州市| 东山县| 杨浦区| 鸡西市| 民丰县| 仪陇县| 武陟县| 辉南县| 祁连县| 赤壁市| 海城市| 福贡县| 肇州县| 潮安县| 鄯善县| 石台县| 冕宁县| 山阴县| 兴安县| 五家渠市| 正镶白旗| 金湖县| 永新县| 江山市| 嘉兴市| 鱼台县|