Az Expression Language (EL- magyarul kifejezés nyelv) egy script nyelv, amelyet a JavaBean-ek elérését teszi lehetővé JSP-n keresztül. A JSP 2.0 óta JSP tag-eken belül használható, ezzel különválasztva a Java kódot a JSP-től.
Az EL-t olyan céllal fejlesztették, hogy könnyebbé tegyék a script írást, olyan webprogramozók számára, akik kevés vagy semennyi tapasztalattal sem rendelkeznek a Java nyelvből.
Az EL használata A kifejezések statikus szövegben, és tag-eken belül is használhatjuk a következőképpen: <some:tag value="${expr}"/> Ha egy kifejezés nem #{-vel kezdődik, akkor az literálnak minősül. A #{ karaktereket a '#{' módon lehet megjeleníteni. Ha több kifejezés is szerepel, akkor azok balról jobbra értékelődnek ki.
Változók:
Ha az kifejezésben egy változó szerepel, akkor a konténer a page, request, session és application scope-okban keresi a változó értékét. Ha nem találja, akkor null-t ad vissza. Ha pedig változó is implicit object is szerepel ugyanazon a néven akkor az implicit objectet adja vissza, ilyenek például a pageContext, paramValues, cookie, requestScope, stb. A . és [] operátor egyenértékű.
Egy összetett expression (expr-a.expr.b) a következőképp végzi: Ha value-a egy Map, akkor value-a.get(value-b)-t ad vissza, ha nem találja, akkor null-t. Ha value-a egy lista vagy tömb, akkor b-t egy int típusba kényszeríti, és value-a.get(value-b)-t vagy Array.get(value-a,value-b)-t ad vissza. Ha a get hívás IndexOutOfBoundExceptionnal tér vissza, akkor a kifejezés értéke null lesz, ha más hibával tér vissza vagy a típuskényszerítés nem sikerül, akkor hibát jelez. Ha value-a egy JavaBean, akkor value-b-t String-be kényszeríti, és ha ez a String a value-a egy property-je, akkor a get hívás eredményét adja vissza.
Literálok: Boolean: true és false Integer, Floating point: ugyanaz, mint Java-ban String: ' és " idézőjelet is lehet használni, \ segítségével lehet escape-elni Null: null
Operátorok precedencia szerint: [], . () - a kiértékelés sorrendjét lehet vele megváltoztatni - (unary), not, !, empty - meghatározza hogy az utána lévő érték null vagy empty *, /, div, %, mod +, - (binary) < > <= >= lt gt le ge == != eq ne && and || or ? :
Függvények:
Ahhoz hogy egy függvényt használhassunk importálni kell az azt tartalmazó tag libraryt, és a megfelelő preface-el ellátni a függvényt.
<%@ taglib prefix="f" uri="/functions"%> ... <c:when test="${f:equals(selectedLocaleString,localeString)}" >
Ahhoz hogy saját függvényt használhassunk, public static módosítószóval kell ellátni, és public osztályba tenni. Ezután mappelni kell a függvényt olyan néven, ahogy használni szeretnénk az EL expression-ben.
<function> <name>equals</name> <function-class>mypkg.MyLocales</function-class> <function-signature>boolean equals( java.lang.String, java.lang.String )</function-signature> </function>
További információk tutorial
Kategória:Programozási nyelvek Kategória:Webfejlesztés Kategória:Java