【问题标题】:Spring MVC Validation messages translationSpring MVC 验证消息翻译
【发布时间】:2016-02-25 06:30:49
【问题描述】:

我正在使用 Spring mvc 应用程序,并且我已经为使用国际化的页面实现了西班牙语翻译。我在我的 xml 中使用了以下代码

<mvc:interceptors>
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>
</mvc:interceptors>

 <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>

除验证消息外,所有标签和消息都有效。我在验证器类中设置验证消息

errors.rejectValue("value1","valid.value1");

在属性文件中,我在 2 个文件中有西班牙语、英语文本。但是

<form:errors path="value1" /> 

工作不正常。它按原样显示文本(我有一些像 n 和 tilda 的字母,所以我尝试使用 ñ)但它不工作。

我的jsp页面顶部有以下内容

    <jsp:directive.page contentType="text/html;charset=UTF-8" />

        <head>
            <%@ page isELIgnored="false"%>

              <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
              <meta http-equiv="X-UA-Compatible" content="IE=edge" />

    ................

    </head>

<body>

<form:errors path="value1" />

</body>

我还需要添加什么吗?谢谢。

【问题讨论】:

    标签: forms validation spring-mvc internationalization


    【解决方案1】:

    我能够完成这项工作。我所要做的就是将 htmlEscape="false" 添加到 .我确实尝试过,但我添加了 spring:message 标签,所以它不起作用。谢谢。

    【讨论】:

      【解决方案2】:

      我偶然发现了同样的问题,并意识到 rejectValue 方法实际上并没有翻译消息,而如果我使用 ValidationUtils 一切正常。

      因此,如果您需要没有 ValidationUtils 类的自定义验证,那么我发现的唯一解决方法是放置在

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-17
        相关资源
        最近更新 更多