2007 年 4 月 29 日 23 時 11 分

一覧表示画面にルールを表示する


このアーカイブは同期化されません。 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」、値をルールの番号としておいた。

これで、ルールの一覧が表示できるようになったはずだ。



Copyright (c) 1994-2007 Project Loafer. All rights reserved.