3

Spring を活用し、ロケール駆動のサポートをレンダリングするSpring MVC J2EE アプリケーションがlocaleChangeInterceptorあります。CookieLocaleResolverこれは機能していますが、アクセント記号を使用して文字をエンコードしようとすると、フロントエンドはそれらを期待どおりにレンダリングできません。

これが私の webmvc-config.xml ファイルのスニペットです。

    <!-- Internalization and localization support -->
    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="classpath:messages" />
        <property name="defaultEncoding" value="UTF-8"/>
    </bean>

    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>

    <bean id="localeResolver"
        class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
        <property name="defaultLocale" value="en"/>
    </bean>

    <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
        <property name="interceptors">
            <ref bean="localeChangeInterceptor" />
        </property>
    </bean>

これに加えて、いくつかの message_xx.properties ファイルがあり、タグをコンティアンしてレンダリングします。アクセント記号が埋め込まれた次のようなタグが含まれています: district.manager.approval=Aprobaci&#243;n del Gerente de Distrito. 私の牛肉は、これがフロントエンドに表示されるのではなく、これとまったく同じように表示されることです me Aprobación del Gerente de Distrito.

私が間違っていた可能性のある場所はありますか?

4

3 に答える 3

2

.properties ファイルのエンコーディングは、通常 (いくつかの例外を除いて) Latin-1 であると予想されます。したがって、Unicode コンテンツを表示するには、Latin-1 レパートリーを超えて文字をエスケープする必要があります。

district.manager.approval=Aprobaci\u00F3n del Gerente de Distrito

または、UTF8 としてエンコードできる XML プロパティ ファイルを使用します。

于 2013-08-15T03:29:57.430 に答える
1

<c:set>少し調べてみたところ、重要な詳細を省略したようです。これは、エンコーディングが適切に機能しないSpringタグと一緒にJSTLを使用した場合にのみ発生するようです. 結局のところ、 を使用するとき<c:out>は、属性を伴う必要がありescapeXml="false"ます。これが私がやったことであり、現在は適切に機能しているようです:

これは1ページに設定されています

<c:set var="headerScreenTitle">
    <spring:message code='district.manager.review.and.approval' />
</c:set>   

これはインポートされたページで消費されます

<c:out value="${headerScreenTitle}" escapeXml="false" />

そして、それは私にこれを見事に与えます:

REVISIÓN Y APROBACIÓN DEL GERENTE DE DISTRITO

皆様、ご回答ありがとうございます!

于 2013-08-15T22:19:10.297 に答える
0

If you use html entities (e.g. &) and use <spring:message code="property.name" /> tag to print values set "htmlEscape" attribute to "false":

<spring:message code="property.name" htmlEscape="false" />
于 2013-08-15T12:37:36.890 に答える