6

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クラスでアプリのロケールを変更したいと思います。これどうやってするの?

4

1 に答える 1

10

と を使用ActionContext.getContext().setLocale(locale)して、HTTP セッションに入れます session.put(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE, locale)

于 2012-10-15T08:36:08.990 に答える