我想知道是否可以将语言环境更改为动作,而不是通过url参数...
实际上我有一个身份验证操作,对于经过身份验证的用户,我想切换到一个适当的语言环境。
我试过了:
session.put("WW_TRANS_I18N_LOCALE", "my_locale")
或
session.put("WW_TRANS_I18N_LOCALE", new Locale("my_locale"))
但仍然没有...
任何想法?
答案 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"));