トップ 差分 一覧 ping ソース 検索 ヘルプ PDF RSS ログイン

7.3 演算子を使用するELコード (算術演算子、比較演算子、論理演算子)



目次



記事一覧

キーワード

ある状況において、以下の演算子を使用するELコードを書く:算術演算子、比較演算子、論理演算子


http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7.html#wp71019

 算術演算子


加算演算子(+)
備考
${1 + 2} 3
${1.0 + 2} 3.0
${"1.0" + 2} 3.0 文字列 + 数値 → 演算される
${"1.0" + "2"} 3.0 文字列 + 文字列 → 演算される
${"1 + 2"} 1 + 2 演算子が文字列に含まれると単なる文字列
${a + b} 0
${"a" + "b"} javax.servlet.jsp.el.ELException が発生 String "a" を "java.lang.Long" 型に変換しようとした際に例外が発生しました

減算演算子(-)
備考
${2 - 1} 1
${2.0 - 1} 1.0

乗算演算子(*)
備考
${3 * 5} 15
${0.12 * 0.34} 0.0408
${1e6 * 1} 1000000.0

除算演算子(/ or div)
備考
${1 / 3} 0.3333333333333333 整数÷整数でも実数になる(int型どうしの演算なら 0 となる)
${15 div 3} 5.0 整数÷整数でも実数になる
${1 div 0} Infinity Exceptionは発生しない

モジュロ演算子(% or mod)
備考
${10 % 3} 1
${10 mod 7} 7

 比較演算子

等号(== or eq)
備考
${2.0 == 2} true
${"2.0" == "2"} false 文字列の比較になる?
${"2.0" == 2.0} true
<%= "abc" == (String)pageContext.getAttribute("abc") %> false new String("abc") をpageContextにセットし比較 → インスタンスが異なるため、falseとなる
${"abc" == pageScope.abc} true 文字列の内容比較となる

不等号(!= or ne)
備考
${pageScope.abc != "def"} true
${pageScope.abc ne "abc"} false
${1.00 ne 1e2} false

小なり(< or lt)
備考
${"abc" < "def"} true
${999 < 123} false

大なり(> or gt)
備考
${"abc" > "def"} false
${999 > 123} true

小なりイコール(<= or le)
備考
${1 / 3 <= 0.3} false
${1 / 2 <= 0.5} true

小なりイコール(<= or le)
備考
${1 / 3 >= 0.3} true
${1 / 2 >= 0.5} true

 論理演算子

論理積(&& or and)
備考
${true && true} true
${"true" and "false"} false 引用符で囲まれていてもOK
${pageScope.isXXX and true} true コンテナに格納されたjava.lang.Boolean 型
${a and b} false 宣言していない変数を使用
${1 and 0} 例外 java.lang.Long 型の値を Boolean 型に変換しようとしています
${true & false} 例外 ${true & false} は無効な式を含んでいます

論理和(|| or or)
備考
${true || false} true
${pageScope.isXXX or "false"} true

否定(! or not)
備考
${!true} false
${!"true"} false 引用符に囲まれていてもOK
${"!true"} !true 演算子が引用符に囲まれていれば文字列
${not pageScope.isXXX} false

三項演算子

三項演算子
備考
${true && true} 1
${(10 > 100)?"Yes.":"No."} No.


SCWCD Exam Study Kit: Java Web Component Developer Certification (ペーパーバック)



指定されたパートは存在しません。



YAGI Hiroto (piroto@a-net.email.ne.jp)
twitter http://twitter.com/pppiroto

Copyright© 矢木 浩人 All Rights Reserved.