このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。
では、一気にルールの内容も表示してみよう。
=========== /WEB-INF/pages/filter/list.jsp ===========
(…省略…)
<logic:iterate name="filter" property="rules"
id="rule" indexId="i">
<tr>
<td>
<input type="checkbox"
name="selected" value="${i}" />
</td>
<td>
<logic:equal name="rule"
property="enabled" value="true">
○
</logic:equal>
</td>
<td>
<bean:message
key="value.action.${rule.action}" />
</td>
<td>
<logic:iterate name="rule" property="protocols" id="proto">
<bean:message
key="value.protocol.${proto}" />
</logic:iterate>
</td>
<td>
<bean:write name="rule"
property="source.network" />
</td>
<td>
<bean:write name="rule"
property="source.port" />
</td>
<td>
<bean:write name="rule"
property="destination.network" />
</td>
<td>
<bean:write name="rule"
property="destination.port" />
</td>
<td>
<bean:write name="rule"
property="note" />
</td>
<td>
<button name="edit" value="${i}">
編集
</button>
</td>
</tr>
</logic:iterate>
(…省略…)
=========== end of /WEB-INF/pages/filter/list.jsp ===========
ルールの管理を行うためのチェックボックスは、
ManageRulesForm の selected プロパティであり、
これは int 型の配列となっている。
編集系フォームと違い、現在値を得る必要がないため、
HTML の <input> 要素を直接使って作成する。
名前は selected とし、値としてルールの番号とすれば、
ManageRulesForm で正しく値を受け取れることになる。
<input type="checkbox"name="selected" value="${i}" />
有効の状態は、「○」の表示で表現することにした。
これには、<logic:equal> 要素を使って条件分岐を行う。
name、property で指定したプロパティの値と、
value 属性で指定した値を比較し、
一致した場合のみ、要素内容が展開される。
ま、簡単な if 文といったところか。
プロトコルは、プロトコル名の配列となっている。
<logic:iterate> はネストさせることができるので、
これも <logic:iterate> を使って列挙する。
protocols 配列に格納されたプロトコル名は、
「tcp」、「udp」といった小文字のシンボルだが、
画面表示は、「TCP」、「UDP」が好ましい。
そこで、許可・拒否と同じようにメッセージリソースを使う。
Messages.properties に、以下の 2 行を追加しておく。
value.protocol.tcp = TCP
value.protocol.udp = UDP
これにより、<bean:message> で出力することができる。
最後に個別ルールの編集用のボタンを出力する。
これをどのように作るかどうか色々と迷ったが、
とりあえず名前「edit」、値をルールの番号としておいた。
これで、ルールの一覧が表示できるようになったはずだ。