Struts2改变了语言环境

时间:2012-06-27 09:46:39

标签: session struts2 request locale

我想知道是否可以将语言环境更改为动作,而不是通过url参数...

实际上我有一个身份验证操作,对于经过身份验证的用户,我想切换到一个适当的语言环境。

我试过了:

session.put("WW_TRANS_I18N_LOCALE", "my_locale")

session.put("WW_TRANS_I18N_LOCALE", new Locale("my_locale"))

但仍然没有...

任何想法?

2 个答案:

答案 0 :(得分:1)

您应该将区域设置信息作为参数传递给操作。像这样的东西:

<s:url id="url" action="your-action" >
   <s:param name="request_locale" >${your-locale}(e.g. de, en, etc.)</s:param>
</s:url>

更新1

这是链接,可能对您有所帮助。 How to set locale in a custom Struts 2 ActionMapper

你也可以尝试一下,但我不确定,如果它有效。将此代码段放到您的操作类中。     ActionContext.getContext()。setLocale(new Locale(“your-locale”));

答案 1 :(得分:0)

您还可以使用: ServletActionContext.getContext().setLocale(new Locale("en","US"));