1

それを達成するために私がしたこと。

アクション ファイル:

ResourceBundle rb = ResourceBundle.getBundle("com.....ApplicationResources");               
String title=rb.getString("entity.member");
messages.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("message.save",title ));

アプリケーション リソース:

entity.member=Member
entity.Locker=Locker
message.save={0} saved successfully

私が欲しいのは:

「メッセージの置換値」をハードコードされた「メンバー」という単語に置き換える簡単な方法があります。お気に入り

messages.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("message.save","Member" ));

しかし

1. MessageResources resources = getServlet().getInternal().getMessageResources("com....ApplicationResources")

2. ResourceBundle rb = ResourceBundle.getBundle("com.....ApplicationResources");

3. String title = getResources(request).getMessage(getLocale(request), "entity.member");

messages.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("message.save",title ));

上記の 3 つは、「メッセージの置換値」をそれぞれの言語の表現に置き換えるための長いルートです。

ハードコーディングのように短いルートを探しています。

4

2 に答える 2

0

以下の要素を struts.xml に含めます

<constant name="struts.custom.i18n.resources" value="ApplicationResources" />

ActionSupport をアクション クラスに拡張する

com.opensymphony.xwork2.ActionSupport

プロパティ値が必要な場合は、以下の関数を使用してください

getText(文字列キー)

于 2014-01-23T09:22:25.433 に答える
0

MessageFormat引数を使用してメッセージをフォーマットするために使用できます。

MessageFormat.format(rb.getString("message.save"), new Object[]{title})

StrutsとActionMessage同じように使用しMessageResourcesます。

于 2014-01-23T12:55:53.170 に答える