8

こんにちは私は英語ではなく(たとえばロシア語で)テストを行いたいテストフィールドを持っていますが、私のアクションクラスではテキストのみの代わりに取得します?????????struts2のパラメータ文字セット変換を記述した単純なフィルタを書き込もうとしています

しかし、それでも機能しません..誰かが私を助けることができます

更新 私はこれを持っています ここに画像の説明を入力してください

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

ロシア語でテストしてからアクションに送信したいのですが、アクションクラスでは、テキストのみの代わりに取得し?????????ます。この問題を修正するには、文字セットをwin1251ではなくutf8に変更する必要があります。

4

3 に答える 3

13

フィルタを作成します。

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>

そして、あなたは行ってもいいです。また、すべてのJSPページに次のものが含まれていることを確認してください<%@ page contentType="text/html;charset=UTF-8" language="java" %>。アプリケーションがtomcatで実行されている場合は、要素にURIEncoding="UTF-8"属性を追加してくださいConnector

于 2012-08-31T18:15:00.373 に答える
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>
于 2012-10-04T08:01:35.020 に答える
1

(以前の応答についてコメントすることはできません)

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

web.xml>2.3でOK

2012年にまだ存在していないかどうかはわかりませんが、この要素はweb.xml> 2.4でのみ使用可能であることに注意してください(この要素は2.3http://java.sun.com/dtdには存在しません)。 /web-app_2_3.dtd)。

于 2014-04-07T09:35:25.597 に答える