JSF EL(式言語)

ちょっと復習がてら

構文例

#{hoge.name}
#{Foo.bar}
#{Foo[bar]}
#{Foo["bar"]}
#{Foo[2]}
#{Foo[2].bar}
#{Foo.bar[2]}
#{hoge.name == 'YONE'}
#{(hoge.age - 10) * 10 / 2}


暗黙オブジェクト

  • facesContext - 現在の要求の FacesContext インスタンス
  • param - 要求パラメータ名を 1 つの値にマップ
  • paramValues - 要求パラメータ名を値の配列にマップ
  • header - 要求ヘッダー名を 1 つの値にマップ
  • headerValues - 要求ヘッダー名を値の配列にマップ
  • cookie - Cookie 名を 1 つの Cookie にマップ
  • initParam - コンテキスト初期化パラメータ名を 1 つの値にマップ
  • requestScope - 要求スコープの変数名をその値にマップ
  • sessionScope - セッションスコープの変数名をその値にマップ
  • applicationScope - アプリケーションスコープの変数名をその値にマップ


リテラル

  • Boolean: true と false
  • 整数: Java と同様
  • 浮動小数点: Java と同様
  • 文字列: 引用符と二重引用符。" は \"、' は \'、\ は \\ とエスケープします。
  • Null: null


予約語

  • and
  • false
  • le
  • not
  • div
  • ge
  • lt
  • null
  • empty
  • gt
  • mod
  • or
  • eq
  • instanceof
  • ne
  • true


演算子

  • 数値: +、- (2 項)、*、/、div、%、mod、- (単項)
  • 論理: and、&&、or、||、not、!
  • 関係: ==、eq、!=、ne、<、lt、>、gt、<=、ge、>=、le。ほかの値、または Boolean、文字列、整数、または浮動小数点のリテラルと比較できます。
  • empty: empty 演算子は、値が null であるか、空であるかの判別に使用できる前置演算子です。
  • 条件: A ?B :C。A の評価の結果によって、B または C を評価します。


演算子の優先順位
# 優先順位の高い順に上から下、左から右

[] . 
() (演算子の優先順位を変更) 
+- (単項) not ! empty 
* / div % mod 
+ - (2 項) 
< > <= >= lt gt le ge 
== != eq ne 
&& and 
|| or 
? :