目次へ

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タグライブラリのタグで処理を済ませるようにする事。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ