2012-08-31 70 views
7

嗨我有testfield,其中我不想測試英文(例如俄語) 但在我的操作類中,我僅獲取文本而不是文本?????????。 我試圖寫它描述Parameters charset conversion in struts2如何將struts2中的字符集更改爲utf-8

,但它仍然不工作簡單的過濾器.. 能有人幫助我

更新 我有這個 enter image description here

<s:textfield key="index.login" name="login" /> 

我想把它用俄語進行測試,然後發送給我的動作。但在我的動作類中,我得到的不是文本而是?????????。要解決這個問題我n eed把charset改成utf8而不是win1251。

+0

你究竟試過了什麼?你需要解釋你準備做什麼。你提供的鏈接已經**了,使用UTF-8編碼,所以這個問題沒有意義。我不得不低估這個問題,因爲它是我在很長一段時間裏看到的最糟糕的研究問題之一。 –

+0

什麼是頁面編碼?必須是<%@ page language =「java」contentType =「text/html; charset = UTF-8」pageEncoding =「UTF-8」%> .java文件也是UTF-8。 – gooogenot

回答

11

創建一個過濾器:

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 CharacterEncodingFilter implements Filter { 

    @Override 
    public void init(FilterConfig filterConfig) 
      throws ServletException { 
    } 

    @Override 
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) 
      throws IOException, ServletException { 
     servletRequest.setCharacterEncoding("UTF-8"); 
     servletResponse.setContentType("text/html; charset=UTF-8"); 
     filterChain.doFilter(servletRequest, servletResponse); 
    } 

    @Override 
    public void destroy() { 

    } 
} 

聲明它變成你的web.xml:

<filter> 
    <filter-name>CharacterEncodingFilter</filter-name> 
    <filter-class>your.package.filter.CharacterEncodingFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>CharacterEncodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

而且your're好到哪裏去。還請確保您的每個JSP頁面都包含:<%@ page contentType="text/html;charset=UTF-8" language="java" %>。如果您的應用程序在tomcat上運行,請確保您將URIEncoding="UTF-8"屬性添加到Connector元素。

+0

不工作它發送??????? –

4

如果您需要強制JSP爲UTF-8,你可以寫在web.xml中有以下:

<jsp-config> 
    <jsp-property-group > 
     <url-pattern>*.jsp</url-pattern> 
     <page-encoding>UTF-8</page-encoding> 
    </jsp-property-group> 
</jsp-config> 
1

(不能previus響應評論)

<jsp-config> 
<jsp-property-group> 
    <url-pattern>*.jsp</url-pattern> 
    <page-encoding>UTF-8</page-encoding> 
</jsp-property-group> 

好for web.xml> 2.3

我不確定2012年它是否還不存在,但要注意這個元素是僅適用於web.xml> 2.4(該元素不存在於2.3 http://java.sun.com/dtd/web-app_2_3.dtd中)。

相關問題