Expression Language

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:

Literálok:

Operátorok precedencia szerint:

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