strtus 2国際化を実現

1955 ワード

ネット上のstruts 2の国際化を実現する資料はすべてとてもそろっていないで、すべて実現した後に私は大体の記録をします
1.国際化の使用方法
strutsプロファイルに定数を設定するには、value値messageに注意してください.Messagesは、プロファイルがmessageパッケージの下にあるファイル名をmessages(_言語名.properties)とするファイルを指すことを示します.

2.プロファイルの値を取得する方法
ページ:
<:text name="構成されたキー"/>
バックグラウンド:ツールクラスの列が書かれています.最も簡単なのは、主にResourceBundleクラスからプロファイルmapオブジェクトを取得することです.
public static String getMessage(HttpServletRequest request, String key)
    {
        String value;
        
        try
        {
            Locale locale = (Locale) request.getSession()
                    .getAttribute("locale");
            
            if (locale != null)
            {
                locale = new Locale("en", "US");
            }
            ResourceBundle rb = ResourceBundle.getBundle(FILE, locale);
            
            value = rb.getString(key);
        }
        catch (RuntimeException e)
        {
            value = "NULL";
        }
        
        return value;
        
    }

3.国際化を切り替えたら?
//      
        if (null != httpServletRequest.getSession().getAttribute("locale"))
        {
            locale = (Locale) httpServletRequest.getSession()
                    .getAttribute("locale");
            RequestContext.getContext().setLocale(locale);
            ActionContext.getContext().setLocale(locale);
            return;
        }

方法:フロントクリック切替時にajaxを使用してセッションのlocale値を再付与し、ページをリフレッシュし、バックグラウンドが実行ページの前にセッション中に存在するかどうか、存在しない場合はデフォルトのLocaleクラスを作成し、最後にLocaleをActionContextに入れる.getContextは国際化を実現し、メッセージのメッセージを直接見つけることができます.locale.language.propertiesは対応する値を取得します