2012-08-31 14 views
7

こんにちは私は英語ではなく(例えばロシア語に) のテストを入れたいのですが、私のアクションクラスではテキストの代わりに?????????という文字列しか得られません。 私は .. Parameters charset conversion in struts2struts2の文字セットをutf-8に変更するには

を説明したが、それはまだ動作しません単純なフィルタを作成しようと誰かが私に更新

を助けることができる私はこの enter image description here

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

を持って、私がしたいですそれをロシア語でテストして、それを私の行動に送ります。しかし、私の行動クラスでは、テキストの代わりに?????????。この問題を解決するためにwin1251の代わりにcharsetをutf8に変更しました。

+0

正確に何を試しましたか?あなたは正確に何をしようとしているのかを説明する必要があります。あなたがすでに提供しているリンクは**既に** UTF-8エンコーディングを使用していますので、この質問は理にかなっていません。私は非常に長い時間に見た最悪の研究の質問の一つであるため、この質問をd​​ownvoteする必要があります。 –

+0

ページエンコーディングは何ですか?また、.javaファイルもUTF-8でなければなりません。また、<%@ page language = "java" contentType = "text/html; charset = UTF-8" pageEncoding = "UTF- – 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で実行されている場合は、Connector要素にURIEncoding="UTF-8"という属性が追加されていることを確認してください。

+0

送信しないでください??????? –

4

あなたはUTF-8にJSPを強制する必要がある場合は、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> 

[OK]をfor web.xml> 2.3

2012年にまだ存在しませんが、この要素がweb.xml> 2.4でのみ利用可能です(その要素は2.3 http://java.sun.com/dtd/web-app_2_3.dtdに存在しません)。

関連する問題