0

ブラウザーから Spring MVC コントローラーにいくつかの要求パラメーターを送信し、後でそれらをメソッド・パラメーターのように処理する必要があります。問題は、私が推測する tomcat が、通過する URI データを正しくエンコードしなかったことです。'Имя'私が持っている代わりに:%D0%9C%D0%91%D0%94%D0%9E%D0%A3+%D0%B4%2F%D1%81%E2%84%969%D1%81.+%D0%95%D0%BB%D0%B8%D0%BE%D0%BD%D0%BA%D0%B0

私は、Tomcat に URI エンコーディングがプリインストールされていないために発生するこの種の問題についてよく読んでいます。

よろしければ、Tomcat config web.xmlにボディエンコーディングがあります。はい、次のとおりです。

<filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
        <init-param>
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>tru?</param-value>
        </init-param>       
    </filter>

    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

だから私はコンテナ構成に他に何かを設定する必要があるのですか? ありがとうございました

4

2 に答える 2

0

Tomcatの構成を変更せずにこれを行うことがわかった唯一の方法は次のとおりです。

パラメータをフォームに入れる

<form onsubmit="encodeParameter(this.param)">
  <input type="text" name="param" />
  <input type="submit" />
</form>

サーバーに送信する前にエンコードします

function encodeParameter(param){
  param.value =encodeURIComponent(param.value);
}

サーバー上で正しい文字列を取得します。

于 2014-11-14T14:25:12.200 に答える