【问题标题】:Struts2 change localeStruts2 更改语言环境
【发布时间】:2014-05-14 15:38:20
【问题描述】:

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

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

我试过了:

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

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

但还是什么都没有……

有什么想法吗?

【问题讨论】:

    标签: session struts2 request locale


    【解决方案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

    你也可以试试这个,但我不确定它是否有效。把这个 sn-p 放到你的行动课上。 ActionContext.getContext().setLocale(new Locale("your-locale"));

    【讨论】:

      【解决方案2】:

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

      【讨论】: