[Seasar-user:17374] Re: 【SAStruts】Struts1.2のLocaleActionを使うには?

Takeshi Motegi [E-MAIL ADDRESS DELETED]
2009年 5月 3日 (日) 22:19:27 JST


ひが様

教えていただいた方法で、やりたいことができました!
ありがとうございました。

コードなにがしの
http://code.nanigac.com/source/wiki/view/597/38
の「2-8 国際的なアプリケーションを作ろう」に記事としてUPしていますが、

以下のような、StrutsのLocaleActionクラスを模したアクションクラスを作成
することで実現しました。

============================
package sample.action;

import java.util.Locale;
import org.apache.struts.Globals;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;
import org.seasar.struts.util.RequestUtil;
import sample.form.ChangeLocaleForm;

public class ChangeLocaleAction {

    @ActionForm
    @Resource
    protected ChangeLocaleForm changeLocaleForm;

    //登録画面の表示
    @Execute(validator = false)
    public String index() {

        //ロケールオブジェクトを生成
        Locale newLocale = new Locale(changeLocaleForm.language, 
changeLocaleForm.country);

        //セッションオブジェクトを取得
        HttpSession session = RequestUtil.getRequest().getSession();

        //現セッションのロケールを設定
        session.setAttribute(Globals.LOCALE_KEY, newLocale);

        //会員登録画面表示アクションメソッドを呼び出し
        return "/member/";
    }
}

============================
package sample.form;

import org.seasar.struts.annotation.Required;

public class ChangeLocaleForm {

    //言語(ISO-639)
    @Required
    public String language;

    //国(ISO-3166)
    @Required
    public String country;
}





Seasar-user メーリングリストの案内