JSF - Java Server Faces Keretrendszer

Unified Expression Language (UEL)

A Java Unified Expression Language (UEL) egy speciális célú programozási nyelv, melyet legtöbbször webalkalmazásokban használnak az objektumok elérésére és kifejezések weblapba ágyazására. A Java specifikáció készítői, és a Java többrétegű webes technológiák szakértői csoportjai egy olyan leírónyelvet szerettek volna létrehozni, amely már része a JSP 2.1 specifikációnak (JSR-245). Bár a leírónyelv része a JSP specifikációnak, mégsem függ tőle.

UEL Szintaxis

Az objektumok elérésére két féle szintaxist használhatunk. Az egyik csak olvasni képes az adott attribútumot és azonnal kiértékelésre kerül. Míg a másik olvasni és írni egyaránt képes az objektum tulajdonságait. Kiértékelése függ a használt komponenstől és a JSF életciklusától, hogy éppen melyik fázisában van.

Az objektumokat a háttérben definiált úgynevezett RequestBean –eken keresztül érhetjük el.
A következőképpen #{RequestBeanNeve} – ebben az esetben magára a RequestBean-re hivatkozunk. Ahhoz, hogy a RequestBean egy objektumát elérjük követnünk kell a JSF elnevezési konvenciót. Minden olyan metódusnak amellyel el akarunk érni tehát lekérünk információt annak „get”-tel kell kezdődnie. Ha a tulajdonság értéke beállítható akkor a beállító metódusnak ”set”-tel kell kezdődnie.
Ezt követve pl. egy User objektumot a RequestBean-ben a getUser és setUser metódusokkal érhetünk el. Fontos megemlíteni, hogy a kifejezésben nem kell szerepelnie a get és set névrészletnek.
Egy User objektumra mutató kifejezés így nézne ki #{RequestBeanNeve.user}, a get és set prefix automatikusan behelyettesítésre kerül. Ha a User osztály name tulajdonságához tartozik egy getName() metódus akkor így érhetnénk el #{RequestBeanNeve.user.name}.

Objektum elérés:

Egymásba ágyazás

Típusok

Típus Érték Leírás
Boolean true, false Boolean típust igazság meghatározására használjuk. Értéke igaz vagy hamis lehet.
Integer Egész 32 bit kettes komplemens (-2147483648 - 2147483647)
String pl: "Hello World" Idézőjeke között elhelyezett karakter, karakterlánc
Null null A vizsgált változó nem létezik, nincs hozzárendelve érték

Operátorok precedenciája

  1. [] .
  2. ()
  3. -(unary) not ! Empty
  4. * /
  5. + -
  6. < > <= >= lt gt le ge
  7. == != eq ne
  8. && and
  9. || or
  10. ? :

Operátor példák

Aritmetikai kifejezés Eredmény
#{3+2-1} 4
#{"1"+2} 3
#{1 + 2*3 + 3/4} 7.75
#{3%2} 1
#{(8 div 2) mod 3} 1.0

Relációs kifejezés Eredmény
#{1 lt 2} true
#{"a" lt "b"} true
#{2/3 ge 3/2} false
#{3/4 == 0.75} true
#{null == "test"} false

Logikai kifejezés Eredmény
#{(1 lt 2) and (4 lt 3)} false
#{(1 lt 2) or (4 lt 3)} true
#{!(1 lt 2)} false

Empty operátor Eredmény
#{empty ""} true
#{empty null} true
#{empty param.blah} true

Lefoglalt szavak

Adatszerkezetek elérése

A JSF keretrendszerben legtöbbet alkalmazott adatszerkezetek az Array, List és a Map. A bennük tárolt adatokat a következő módok egyikéve érhetjük el.

Adatszerkezet Adat elérése Ekvivalens java-kód
Array bean.arrayfield[i] bean.getArrayField()[i]
List bean.listfield[i] bean.getListField().get(i)
Map bean.mapfield[key] bean.getMapField().get(key)