1

私は struts2 が初めてで、Web アプリケーションに i18n を追加したいと考えています。私はそのようなコードを文書化しています:

<s:url id="localeEN" namespace="/" action="locale">
    <s:param name="request_locale">en</s:param>
</s:url>
<s:url id="localeruRU" namespace="/" action="locale">
    <s:param name="request_locale">ru_RU</s:param>
</s:url>
<s:a href="%{localeEN}">English</s:a>
<s:a href="%{localeruRU}">Russian</s:a>

そして、次のようなアクション クラスを追加する必要があります。

public class LocalizationAction extends ActionSupport {
    public String execute() {
        return SUCCESS;
    }
}

そして struts.xml にこれを追加します:

<struts>
    <constant name="struts.custom.i18n.resources" value="global"/>
    <constant name="struts.devMode" value="true"/>

    <package name="default" namespace="/" extends="struts-default">
        <action name="locale" class="by.bulgak.newsmanager.action.LocalizationAction">
            <result name="success">index.jsp</result>
        </action>
    </package>
</struts>

globalまた、名前とプロパティファイルがありますglobal_ru_RU

チュートリアルから読んだことはすべて実行しますが、jsp ページで param を設定すると、IDE で名前request_localeが不明なプロパティであると通知されます。

私の間違いがどこにあるのか教えてください。

ここに画像の説明を入力

私のIDEはそれを海に出さないので、アプリを実行するときに言語を変更したいとき、IDEがstruts2でI18nメソッドを呼び出さないのはそのためです

4

1 に答える 1

1

Struts2 は、デフォルトの i18n プロパティを英語に関連付けません。

このようにデフォルトのプロパティを設定すると、property_name_en.properties正常に動作します。

しかし、なぜそうなのかわかりません。私は多くの例を見て、それらを自分のマシンで起動しても問題なく動作しますが、うまくいきませんでした..誰かが何が問題なのか知っているでしょうか?

于 2012-09-05T09:31:29.127 に答える