1

activewebフレームワークに基づいて新しい Web アプリケーションを作成したところ、デフォルトで「?」が表示されます。すべての外国語の文字。このようなもの:

? ????????? ?????? ???? ????????? ?? ?????? ????????????

? ??? ???? ???????????? ????????????? ??????????

英字は問題なく表示されます。

これが私のweb.xml構成です:

<display-name>activeweb</display-name>

<session-config>
    <session-timeout>30</session-timeout>
</session-config>


<filter>
    <filter-name>dispatcher</filter-name>
    <filter-class>org.javalite.activeweb.RequestDispatcher</filter-class>
    <init-param>
        <param-name>exclusions</param-name>
        <param-value>css,img,fonts,images,js,html,GwtExample,ico</param-value>
    </init-param>
    <init-param>
        <param-name>root_controller</param-name>
        <param-value>home</param-value>
    </init-param>
</filter>


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

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

この問題は、activeweb内部のエンコードに関連している可能性があるか、特別な設定を適用する必要があると思われます。それを修正する方法を知っていますか?

4

1 に答える 1

0

これは、ActiveWeb がデフォルトでエンコーディングについて何もせず、得られるものがサーブレット コンテナーから取得されるために発生します。特定のエンコーディング (UTF-8 だと思います) を強制するには、web.xml に構成の行を追加する必要があります。ファイル:

<filter> <filter-name>dispatcher</filter-name> <filter-class>org.javalite.activeweb.RequestDispatcher</filter-class> <init-param> <param-name>exclusions</param-name> <param-value>css,images,js,ico</param-value> </init-param> <init-param> <param-name>root_controller</param-name> <param-value>home</param-value> </init-param> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter>

これにより、リクエストとレスポンスで UTF-8 エンコーディングが強制されます。

于 2014-11-17T18:04:49.090 に答える