0

私のプロジェクトでは、Spring MVC 3.1 で Velocity 1.7 を使用しています。以下は、ベロシティ Bean の構成方法を示すソース コードです。

<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
    <property name="resourceLoaderPath" value="/WEB-INF/views/"/>
</bean>

<bean class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
    <property name="contentType" value="UTF-8" />
    <property name="prefix" value="" />
    <property name="suffix" value=".vm" />
    <property name="exposeSessionAttributes" value="true"/>
    <property name="attributes">
        <map>
            <entry key="authentication">
                <bean class="com.myapp.AuthenticatedUserDetails" />
            </entry>
        </map>
    </property>
</bean>

どこでも UTF-8 エンコーディングを使用しています。ビューエンコーディングに静的テキストがある場合、完全に機能します。問題は、モデルから渡されたオブジェクトから .vm テンプレートに値を表示したい場合です。

上記では、すべての速度テンプレートに認証オブジェクトを渡します。authentication.username 値を表示するなど、認証オブジェクトをビューで使用したい場合、エンコーディングの問題があります - 特殊文字が正しく表示されません。たとえば、authentication.username の内部には「Rafał」という値がありますが、この値をビューに渡すと、表示される値は「Rafa?」になります。

誰かが同様の問題を抱えていますか?あなたの助けに本当に感謝しています。

4

1 に答える 1