Struts 8章 Logicタグライブラリ
8.3. equalタグ/notEqualタグ/greaterEqualタグ/greaterThanタグ/lessEqualタグ/lessThanタグ
equal/notEqual/greaterEqual/greaterThan/lessEqual/lessThanタグは、いずれもJava Beanのプロパティ/クッキーの値/HTTPリクエストの値/HTTPヘッダーの値と、指定の値との比較を行うタグです。評価をした結果が真となる場合のみ、タグのボディ部が実行されて評価されます。評価方法ですが、それぞれ以下の通りです。
equal | 値が指定の値と同じ場合に真 |
---|---|
notEqual | 値が指定の値と同じでない場合に真 |
greaterEqual | 値が指定の値以上であった場合に真 |
greaterThan | 値が指定の値より大きかった場合に真 |
lessEqual | 値が指定の値以下であった場合に真 |
lessThan | 値が指定の値より小さかった場合に真 |
比較を行う値の指定方法は、以下の属性を用いて指定します。
属性名 | 必須 | スクリプト 可能 |
説明 |
---|---|---|---|
name |
○ |
Java Beanをスコープから検索するためのキー。property属性が省略された場合には、この値で検索されたJava Beanが比較を行う値となります。 |
|
property |
○ | 比較を行うJava Beanのプロパティ。 | |
cookie | ○ | 比較を行うクッキーのパラメータ名。 | |
parameter |
○ | 比較を行うHTTPリクエストのパラメータ名。 | |
header | ○ | 比較を行うHTTPヘッダーのパラメータ名。 |
比較の基準となる値の指定は、value属性を用いて行います。
属性名 | 必須 | スクリプト 可能 |
説明 |
---|---|---|---|
value |
○ |
○ |
比較の基準となる値を指定。定数で無ければならない。 |
以下はJava Beanとそれぞれのタグを使用した例です。
public class SampleBean{ ... public int getNumber(){ return(123); } ... }
... <logic:equal header="Host" value="www.techscore.com"> www.techscore.com<br> </logic:equal> <logic:notEqual cookie="name" value="secret"> <bean:cookie id="cookie" name="name" /> <bean:write name="cookie" property="value" /><br> </logic:notEqual> <jsp:useBean id="bean" scope="page" class="SampleBean" /> <logic:greaterThan name="bean" property="number" value="100"> <bean:write name="bean" property="number" /><br> </logic:greaterThan> <logic:lessEqual parameter="number" value="10"> <bean:parameter id="num" name="number" /><%=num %><br> </logic:lessEqual> ...
- HTTPヘッダーのHostがwww.techscore.comであった場合
- クッキーのnameの値がsecretでなかった場合
- beanという名前で登録されているJava Beanのnumberプロパティ値が100より大きい場合
- HTTPリクエストのnumberの値が10以下である場合
全てのタグのボディ部が処理されて以下のような出力となります。
... www.techscore.com<br> taro<br> 123<br> 5<br> ...
2つのJava Beanのプロパティ値を比較したいような場合には、例えば以下のようにします。value属性にはString値を渡さなければならない点に注意してください。
... <bean:define id="num" name="bean" property="number" /> <logic:equal name="bean" property="number" value="<%=num.toString() %>"> of course! </logic:equal> ...
(実習課題2)
実習課題1のプログラムを改良しなさい。
- 5の行の色を変える事。
- 2以下の列の色も変えること。
- logicタグライブラリのタグを用いて実現する事。
(実習課題3)
以下のWebアプリケーションをStrutsを用いて作成しなさい。
- 月毎の平均気温を表示するアプリケーション。
- 例年の値と比較し、それよりも1度以上高い場合には赤く、1度以上低い場合には青く表示する事。
- 気温データは任意に準備してよい。
- 極力logicタグライブラリのタグで処理を済ませるようにする事。