ダウンロードする – リンク://wp-content/uploads/2010/06/Struts2-ActionError-ActionMessage-Example.zip[Struts2-Key-Attribute-Example.zip]

Struts 2では、UIコンポーネントの「

key

」属性は、ローカライゼーションを処理する一般的な方法であり、UIタグを非常に効率的にコーディングする方法です。以下の2つのケースを参照してください。

1.プロパティファイル

プロパティファイルには単一のメッセージが含まれています。

global.username = Username

2.ケース1

テキストフィールドに ‘

key

‘属性を割り当てた場合。 key属性はリソースバンドルからメッセージを取得し、それを

default xhtml text.tflテンプレート

に基づいてレンダリングします。

<s:form action="validateUser">
    <s:textfield key="global.username"/>
</s:form>

これで、global.propertiesファイルから ”

global.username \ {left-side}

“と ”

Username \ {right-side}

“が得られ、次のxhtml text.tflテンプレートに一致します。

<td class="tdLabel">
   <label for="validateUser__{left-side}" class="label">{right-side}:</label>
</td>
<td>
   <input type="text" name="{left-side}" value="" id="validateUser__{left-side}"/>
</td>

  • 最終HTML **

<td class="tdLabel">
   <label for="validateUser__global__username" class="label">Username:</label>
</td>
<td>
   <input type="text" name="global.username" value="" id="validateUser__global__username"/>
</td>

キー属性は、テキストボックス名とIDとして

\ {左側}

をとります。

\ {right-side}

をラベル値として使用します。

3.ケース2

場合によっては、テキストボックスの別の名前を明示的に宣言する必要があります。

<s:form action="validateUser">
    <s:textfield key="global.username" name="username"/>
</s:form>

今度は、キー属性は ”

Username \ {right-side}

“をラベル値と一致させるだけで、テキストボックス名とIDは明示的に上書きされます。

  • 最終HTML **

<td class="tdLabel">
   <label for="validateUser__username" class="label">Username:</label>
</td>
<td>
   <input type="text" name="username" value="" id="validateUser__username"/>
</td>

キーの属性は、開発速度を向上させ、コードをより効率的にすることができます。