Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何强制spring为每个用户使用相同的i18n语言环境_Java_Spring Mvc_Internationalization - Fatal编程技术网

Java 如何强制spring为每个用户使用相同的i18n语言环境

Java 如何强制spring为每个用户使用相同的i18n语言环境,java,spring-mvc,internationalization,Java,Spring Mvc,Internationalization,我正在开发一个JavaSpring应用程序,它将在不同的国家使用。在每个国家,它必须“说”该国的语言(而不是用户的国家)。 对于speak,我的意思是jsp页面()上的消息、javax.validation消息等。 现在,每个国家我都有不同的属性文件。例如,ApplicationResources_ES.properties、ApplicationResources_EN.properties、ValidationMessages_ES.properties、ValidationMessages

我正在开发一个JavaSpring应用程序,它将在不同的国家使用。在每个国家,它必须“说”该国的语言(而不是用户的国家)。 对于speak,我的意思是jsp页面()上的消息、javax.validation消息等。 现在,每个国家我都有不同的属性文件。例如,ApplicationResources_ES.properties、ApplicationResources_EN.properties、ValidationMessages_ES.properties、ValidationMessages_EN.properties等

我不能强迫spring只使用ES或EN语言,不管用户的语言是哪种。 我使用fixedLocaleResolver进行了尝试,但没有成功的结果:

<bean id="fixedLocaleResolver" class="org.springframework.web.servlet.i18n.FixedLocaleResolver">
    <property name="defaultLocale" value="es" />
</bean>

有人能帮我吗

更新: 这是我想解决的一个更具体的问题。
对于每种语言,我都有一个ValidationMessages.properties,以应用程序安装的语言显示javax.validation的结果。问题是语言的变化取决于用户的区域设置,而不是应用程序的区域设置。如何使javax.validation使用其中一个ValidationMessages.properties,而不根据用户进行手动更改?

您是否尝试过
FixedLocaleResolver
setLocale
方法


我找到了一个解决方案,但我真的不喜欢它。 如果在使用以下属性启动tomcat时更改用户的默认国家/地区和语言:

-Duser.language=pt -Duser.country=PT

然后,javax.validation的验证消息以葡萄牙语显示。我应该为每个安装更改此属性。然而,我不认为这是一个干净的解决方案。任何人都有其他的吗?

您的bean必须具有名称
localeResolver
,以便
DispatcherServlet
能够加载localeResolver。因此,将
id
更改如下:

<bean id="localeResolver" c...

我不知道这对我是否有帮助。这种方法需要一个请求和一个响应,不是吗?我只想为我的整个应用程序设置语言环境。例如,当我显示javax.validation抛出的验证错误时,我希望它们使用我的默认语言(而不是用户的语言)。您能再解释一下我应该如何使用setLocale方法吗?另外,当我在一个控制器中设置locale时,它会引发以下异常:java.lang.UnsupportedOperationException:无法更改固定的locale-使用不同的locale解析策略