目次へ

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プロパティの表示には、何らかのフォーマットを指定する事。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ