2011年7月4日月曜日

Struts2のタグで引数の指定

Struts2のタグでは「value="hoge"」のように指定すると、JSPの表示要求をしたActionクラスのgetHoge()メソッドを呼び出してくれます。ところが、場合によってはメソッドに引数を指定したくなる場合があります。

今回は一覧標示をする時に、表示をするかの判定を行うメソッドで引数の指定が必要となってしまいました。

<s:iterator id="t" value="searchResult">
 <s:if test="#t.display">
  ここで表示する内容を編集
 </s:if>
</s:iterator>

のような記述が普通ですが、ここで検索結果の各要素(t)のisDisplay()メソッドに引数を渡す必要が発生したわけです。
いろいろと試した結果、以下のようにメソッド名を省略せずに指定することで引数を渡すことができました。ここで引数のhogeはgetHoge()メソッドが返す値となります。

<s:iterator id="t" value="searchResult">
 <s:if test="#t.isDisplay(hoge)">
  ここで表示する内容を編集
 </s:if>
</s:iterator>

この例のように単純な場合は、検索結果を作成する時に必要なデータだけをリストにすれば良いのですが、実際は複雑な条件で表示判定が必要な場面で発生したものです。今回は説明の為に単純化してあります。

0 件のコメント:

コメントを投稿