【问题标题】:How to change locale in a Struts action class?如何更改 Struts 操作类中的语言环境?
【发布时间】:2012-10-05 04:06:42
【问题描述】:

我有一个 Action 类,我想获取我的应用的语言环境并在此处更改它,但我不知道如何也找不到答案。

我可以使用super.getLocale().toString();获取当前语言环境

但是如何设置语言环境我不知道。

public class LoginAction extends ActionSupport {

    private String login;
    private String password;
    private String language;

    @Override
    public String execute() throws Exception {
        String result = Factory.INSTANCE.getUserDao().checkUser(login, password);
        if(result == null){
            return ERROR;
        }
        return SUCCESS;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getLanguage() {
        return language;
    }

    public void setLanguage(String language) {
        this.language = language;
    }

    @Override
    public void validate() {
        super.validate();
        if(login.isEmpty() | password.isEmpty()){
            addActionError(getText("login.error"));
        }else {
            addActionMessage(getText("login.correct"));
        }
    }
}


我想在上面的 Action 类中更改我的应用程序的语言环境。我该怎么做?

【问题讨论】:

  • 试试看这个:struts.apache.org/2.1.8/docs/i18n-interceptor.html。它说“attributeName (optional) - 用于存储所选语言环境的会话密钥的名称。默认情况下这是 WW_TRANS_I18N_LOCALE”。似乎可以将此会话属性设置为您的新语言环境。 (虽然我从未使用过 Struts2)

标签: java struts2 internationalization locale


【解决方案1】:

使用 ActionContext.getContext().setLocale(locale) 并将其放入 HTTP 会话中 session.put(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE, locale).

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-27
    • 2023-03-24
    • 1970-01-01
    • 2018-07-09
    • 2019-08-08
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多