Java Struts 2操作调用将丢失xwork i18n语言设置

Java Struts 2操作调用将丢失xwork i18n语言设置,java,validation,internationalization,struts2,xwork,Java,Validation,Internationalization,Struts2,Xwork,我在表单上调用函数“foo.action?request_locale=en”。该页面上有一个xwork验证,我希望在给定的语言中得到一个验证错误。我得到的是一个芬兰语页面,这是我浏览器的默认语言,我希望有一个英语页面 如何更改jsp页面上使用的语言(请求语言环境就是从这里来的),以便从我的表单中调用的操作显示为所选语言,而不是浏览器默认语言 一些规格: struts.xml有一行代码 因为我的操作位于fi.foo.action目录,i18n资源位于fi/foo/package_en.prope

我在表单上调用函数“foo.action?request_locale=en”。该页面上有一个xwork验证,我希望在给定的语言中得到一个验证错误。我得到的是一个芬兰语页面,这是我浏览器的默认语言,我希望有一个英语页面

如何更改jsp页面上使用的语言(请求语言环境就是从这里来的),以便从我的表单中调用的操作显示为所选语言,而不是浏览器默认语言

一些规格: struts.xml有一行代码 因为我的操作位于fi.foo.action目录,i18n资源位于fi/foo/package_en.properties等文件

验证器位于barAction-foo-validation.xml,类似于fi.foo.action文件夹中的文件

fi=芬兰语


我的应用程序在其他方面工作正常,但此语言设置在屏幕上给出了错误的语言。

听起来好像没有为操作的侦听器堆栈配置
i18n
侦听器。
i18n
拦截器定义在
defaultStack
中的第四个。确保您没有覆盖操作的堆栈。如果似乎已配置,请尝试在
I18nInterceptor
intercept
方法中设置断点,以确认正在调用它。否则,您所拥有的应该可以工作。

我没有任何拦截器配置。现在我添加了一个,一切都正常了。谢谢你,史蒂文!现在我有com.opensymphony.xwork2.interceptor.I18nInterceptor和com.opensymphony.xwork2.validator.ValidationInterceptor。当我遇到来自操作栏验证(类似于验证)的字段错误时,这些方法工作得很好。我还有一个动作验证,它似乎覆盖了另一个验证,所以当动作着陆时,每个验证消息都会显示,并且“输入”结果和fielderror会打开到某一行。什么拦截器可以解决这个问题?它们太多了,我不知道从哪里开始。问题解决了:我添加了一个“params”拦截器。它在登录到错误页面时保留字段错误。