在我的应用程序中,用户从登录页面动态选择Locale,我将在Cookie中保存选定的区域设置。
我在Web应用程序中重定向时遇到I18n相关问题。
当我通过附加当前语言环境按URL重定向页面时,我的应用程序语言与所选语言保持一致(即在这种情况下工作正常),但是当我通过struts.xml文件中定义的struts重定向重定向到下一页时语言环境更改为默认值(在我的情况下为英语)。
例如:
如果是<result name="success" type="redirect">
,则语言环境会更改为默认值。
如果我删除了type=redirect
,那么它的工作正常,但我的表单将被提交两次。
那么有没有办法在运行时将语言环境附加到struts重定向?
这是我的一个拦截器堆栈:
<interceptor-stack name="sessionValidateStack">
<interceptor-ref name="auditTrail"></interceptor-ref>
<interceptor-ref name="sessionCheck"></interceptor-ref>
<interceptor-ref name="service">
<param name="code">DG</param>
<param name="interfaceType">WEB</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="expHandler"></interceptor-ref>
</interceptor-stack>
答案 0 :(得分:1)
在参数中添加request_locale=<your_language_key>
答案 1 :(得分:0)
在操作结果类型中使用redirect-action而不是redirect,因为在重定向操作的情况下,控件会跳转到不同的操作(在相同或其他包中)。
请参阅link了解重定向和重定向类型结果类型之间的区别。