和風細雨

          世上本無難事,心以為難,斯乃真難。茍不存一難之見于心,則運用之術自出。

          如何配置filter解決Struts的中文問題

          1.制作一filter類如下:
          package com.sitinspring.filter;

          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 {
              
          protected String encoding = null;

              
          protected FilterConfig filterConfig = null;

              
          protected boolean ignore = true;

              
          public void destroy() {
                  
          this.encoding = null;
                  
          this.filterConfig = null;
              }


              
          public void doFilter(ServletRequest request, ServletResponse response,
                      FilterChain chain) 
          throws IOException, ServletException {

                  
          // Conditionally select and set the character encoding to be used
                  if (ignore || (request.getCharacterEncoding() == null)) {
                      String encoding 
          = selectEncoding(request);
                      
          if (encoding != null)
                          request.setCharacterEncoding(encoding);
                  }


                  
          // Pass control on to the next filter
                  chain.doFilter(request, response);

              }


              
          public void init(FilterConfig filterConfig) throws ServletException {

                  
          this.filterConfig = filterConfig;
                  
          this.encoding = filterConfig.getInitParameter("encoding");
                  String value 
          = filterConfig.getInitParameter("ignore");
                  
          if (value == null)
                      
          this.ignore = true;
                  
          else if (value.equalsIgnoreCase("true"))
                      
          this.ignore = true;
                  
          else if (value.equalsIgnoreCase("yes"))
                      
          this.ignore = true;
                  
          else
                      
          this.ignore = false;

              }


              
          protected String selectEncoding(ServletRequest request) {
                  
          return (this.encoding);
              }


          }


          2.在Web.xml中配置這個filter。
              <!-- filter -->
              
          <filter>
                  
          <filter-name>Set Character Encoding</filter-name>
                  
          <filter-class>com.sitinspring.filter.SetCharacterEncodingFilter</filter-class>
                  
          <init-param>
                      
          <param-name>encoding</param-name>
                      
          <param-value>UTF-8</param-value>
                  
          </init-param>
              
          </filter>
              
          <filter-mapping>
                  
          <filter-name>Set Character Encoding</filter-name>
                  
          <url-pattern>/*</url-pattern>
              
          </filter-mapping>

          3.Action調用示例:
          package com.sitinspring.action;

          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;

          import org.apache.commons.beanutils.PropertyUtils;
          import org.apache.struts.action.Action;
          import org.apache.struts.action.ActionForm;
          import org.apache.struts.action.ActionForward;
          import org.apache.struts.action.ActionMapping;

          /**
           * Action定義處
           * 
          @author sitinspring
           *
           * @date 2008-3-20
           
          */

          public final class HelloAction extends Action {
              
          public ActionForward execute(ActionMapping mapping, ActionForm form,
                      HttpServletRequest request, HttpServletResponse response)
                      
          throws Exception {
                  request.setCharacterEncoding(
          "UTF-8");

                  
          // 取Form中參數name
                  String name = (String) PropertyUtils.getSimpleProperty(form, "name");
                  
                  request.setAttribute(
          "msg""歡迎你!"+name);

                  
          return (mapping.findForward("SayHello"));
              }

          }


          以上。

          posted on 2008-03-20 12:46 和風細雨 閱讀(800) 評論(0)  編輯  收藏 所屬分類: Struts


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 洪洞县| 平遥县| 饶平县| 邵东县| 高邮市| 湖南省| 抚松县| 慈溪市| 长治县| 祁连县| 泸西县| 太康县| 奉化市| 景东| 邢台市| 工布江达县| 清丰县| 铁岭市| 英德市| 襄城县| 富川| 西峡县| 乌兰县| 拜泉县| 周宁县| 武胜县| 堆龙德庆县| 金湖县| 孝昌县| 衡山县| 万源市| 三亚市| 黔西| 英吉沙县| 侯马市| 永宁县| 喀喇沁旗| 阳原县| 凤山市| 湄潭县| 始兴县|