iterateの結果を操作する

JSPでiterateの結果をフォーマットしたかったのだけれど、
iterateで取得した各要素を操作する方法が日本語で見つかりませんでした。
ということで日本語のメモを残しておきます。


・こんな状況下にて
ActionにproductListというListの属性がある。
productListにはProductオブジェクトが入っている。
Productオブジェクトはpriceという属性がある。


単純にListに入っている分だけProductのpriceを出力する場合はこんな感じ。

<s:iterator value="productList">
  <s:property value="price"/>
</s:iterator>

productListから取得された要素は暗黙的に扱われています。


出力結果はこんな

34900
230


こんな出力結果では役に立たないので
34,900円
というようなフォーマットに変換します。


具体的にはこう

<s:iterator value="productList">
  <s:text name="format.money">
        <s:param name="value" value="[0].price"/>
    </s:text>
</s:iterator>

Listから取得した要素は[0]を指定することによって
明示的に指定することができます。


この場合の出力結果はこんな内容です。

34,900円
230円


2行目のformat.moneyはpackage.propertiesに定義しておきました。

ついでなのでpackage.propertiesの記述も紹介しておきます。

format.money={0,number,#,##0円}