2

アプリケーションを からStruts 1.1に移行していますStruts 2.3。既存のアプリケーションはMessageResources、次の方法で古いフレームワークから使用します。

<message-resources key="label" parameter="com.abc.xyz.resources.MyLabelResources"/>
<message-resources key="image" parameter="com.abc.xyz.resources.MyImageResources"/>

このようにして、さまざまなリソース ファイルが分離され、ルックアップが行われるたびに、その特定のファイルのみを検索するようにバンドル キーが指定されます。

フレームワークに関する私の理解に基づいてStruts 2.2、作業を行うグローバル プロパティ ファイルが必要であると結論付けました。ただし、既存のアプリケーション (上記) での動作のように、ラベルや画像などの複数のグローバル プロパティ ファイルを作成したいと考えています。

どうやってこれを行うのかわかりません。

4

2 に答える 2

1

特定のファイルのみを検索したい場合は、<s:i18n>タグを使用できます。

getTextアクションが拡張する場合のメソッドの使用ActionSupport

<s:i18n name="labels">
  <s:property value="getText('some.label')" />
</s:i18n>

または<s:text>タグを使用

<s:i18n name="labels">
  <s:text name="some.label" />
</s:i18n>

ただし、カスタムのデフォルト リソース バンドルに複数のプロパティ ファイルを含めることもできます。

<constant name="struts.custom.i18n.resources" value="images, labels" />
于 2013-05-23T09:03:50.967 に答える
0

タグを使用するi18n

リソース バンドルを取得し、値スタックに配置します。これにより、テキスト タグは、現在のアクションに関連付けられたバンドルだけでなく、任意のバンドルからのメッセージにアクセスできます。

リソースバンドルを値スタックにロードして使用します。


この例のように。

リソース バンドルを取得し、値スタックに配置します。これにより、テキスト タグは、現在のアクションに関連付けられたバンドルだけでなく、任意のバンドルからのメッセージにアクセスできます。

name* - the resource bundle's name (eg foo/bar/customBundle)

例:

 <s:i18n name="myCustomBundle">
    The i18n value for key aaa.bbb.ccc in myCustomBundle is <s:property value="text('aaa.bbb.ccc')" />
 </s:i18n>

 <s:i18n name="some.package.bundle" >
      <s:text name="some.key" />
 </s:i18n>

于 2013-05-23T09:02:30.303 に答える