【问题标题】:Struts 2 action call loses the xwork i18n language settingStruts 2 动作调用丢失 xwork i18n 语言设置
【发布时间】:2010-11-22 15:34:21
【问题描述】:

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

如何更改 jsp 页面上使用的语言(这是 request_locale 的来源),以便我的表单中调用的操作将显示为所选语言而不是浏览器默认语言?

一些规格: struts.xml 有一行 因为我的操作在 fi.foo.action 目录和 i18n 资源在 fi/foo/package_en.properties 和此类文件中。

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

fi = 芬兰语

我的应用程序运行正常,但此语言设置在屏幕上显示错误的语言。

【问题讨论】:

    标签: java validation internationalization struts2 xwork


    【解决方案1】:

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

    【讨论】:

    • 我没有任何拦截器配置。现在我添加了一个,现在一切正常。谢谢史蒂文!
    • 现在我有了 com.opensymphony.xwork2.interceptor.I18nInterceptor 和 com.opensymphony.xwork2.validator.ValidationInterceptor。当我遇到来自 fooAction-bar-validation 类型的验证的字段错误时,这些效果很好。我也有动作验证,这似乎覆盖了另一个验证,因此当动作到达时显示每个验证消息,“输入”结果和 fielderror 打开到某行。什么拦截器可以解决问题?它们太多了,我不知道从哪里开始。
    • 问题已解决:我添加了一个“参数”拦截器。当登陆到错误页面时,它会保留字段错误。
    猜你喜欢
    • 2016-06-17
    • 1970-01-01
    • 2012-01-18
    • 2011-08-01
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 2011-04-30
    • 2015-07-10
    相关资源
    最近更新 更多