我正在使用Spring mvc app,并使用国际化为页面实现了西班牙语翻译。我在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" />
无法正常工作。它正在显示文本(我有一些像t与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>
我还需要添加其他内容吗?感谢。
答案 0 :(得分:0)
我能够做到这一点。我所要做的就是将htmlEscape =“false”添加到。我确实尝试过,但我添加到spring:message标签,因此它无法正常工作。感谢。
答案 1 :(得分:0)
我偶然发现了同样的问题并意识到rejectValue方法实际上并没有翻译消息,而如果我使用ValidationUtils,一切正常。
因此,如果您需要没有ValidationUtils类的自定义验证,那么我找到的唯一解决方法是放在
中