ひがやすを技術ブログ

電通国際情報サービスのプログラマ

繰り返し

繰り返しは、JSTLと同様forEachタグを使います。prefixのsは、S2JSF用のタグのためのものです。


<s:forEach items="employees" var="e">
<tr>
<td>
<span b:value="e.empno">7788</span>
</td>
<td>
<span b:value="e.ename">SCOTT</span>
</td>
<td>
<a b:action="employeeListAction.goEdit">編集
<s:param name="empno" b:value="e.empno"/>
</a>
</td>
</tr>
</s:forEach>
<-- ここからはモック用のデータS2JSFを経由すると表示されない -->
<span rendered="false">
<tr>
...
</tr>
</span>
spanタグのボディの値は、ブラウザで直に見たときのプレビュー用です。S2JSFを経由すると、b:valueの値で置き換えられます。
初お目見えは、aタグです。b:action属性で、どのコンポーネントのどのメソッドを呼び出すのかを指定します。
子タグで、s:paramタグを指定することで、Actionにパラメータを渡すことができます。Actionでは、paramタグのname属性と同じ名前でプロパティを定義しておけば、自動的にパラメータを受け取ることができます。通常は、キーを渡すことになるでしょう。
オリジナルのJSFだとパラメータを受け取るには、ActionListenerを定義して、ActionEventからUIComponentを取り出し、その子供のUIParamから値を取り出し、なんてする必要があり、実にうざったいです。もちろん、S2JSFではそんなことさせません。(^^;
一覧系の画面の場合、プレビューのときは、複数件表示したいが、実際は、リストから動的に作成されるなんてことは良くある話です。それを可能にするのが、モック用のデータの部分で、spanタグのrendered属性をfalseにすると、ブラウザは、何の事か分からないので、そのまま表示しますが、S2JSFを経由すると、表示されなくなります。