4.2. writeタグ
writeタグはdefineタグに良く似たタグで、JavaBeansのプロパティ値を読み込みます。ただdefineタグがその値を変数に登録するのに対し、writeタグは出力を行います。
3章1節と同じJavaBeansを例にすると以下のようになります。
<bean:write name="sampleBean" property="double" /> <bean:write name="sampleBean" property="map.key1" />
name属性でJavaBeansの登録名、property属性で出力するプロパティの名前、scope属性でJavaBeansを検索するスコープを指定します。これ以外に、出力に関係する以下の属性を持っています。
属性名 | 必須 | スクリプト 可能 |
説明 |
---|---|---|---|
format | ○ | 出力するフォーマットを指定。プロパティがjava.util.Dateなどの場合に効果的。指定されなかった場合にはデフォルトのフォーマットが適用されます。 | |
formatKey | ○ | format属性が指定されなかった場合に、フォーマットをリソースから検索する場合のキーを指定。リソースはmessageタグで使用するものと同じものを使用します。 |
例えばsampleBeanの「today」というプロパティがjava.util.Dateであった場合、
<bean:write name="sampleBean" property="today" format="yyyy年MM月dd日" />
とすると「2002年10月30日」といった出力が得られます。java.util.Dateのフォーマットはjava.text.SimpleDateFormatに従います。
最後に注意ですが、writeタグはformat属性でフォーマットを指定しなかった場合、formatKeyでメッセージリソースを使用するしないに関わらず、Webアプリケーションでメッセージリソースを指定しておかなければ動作しません。struts設定ファイルにメッセージリソースの設定をするのを、忘れないようにして下さい。
(実習課題2)
3章実習課題1のWebアプリケーションを改良しなさい。
- JavaBeansクラスにjava.util.Dateプロパティを追加する事。
- defineタグではなく、writeタグを用いて表示を行う事。
- java.util.Dateプロパティの表示には、何らかのフォーマットを指定する事。