AWWW-1st3.6-w07.tresc-1.0-Slajd20
JSP EL - wyrażenia
Wyrażenia JSP EL mogą się znaleźć bezpośrednio w statycznym tekście lub jako wartości atrybutów znaczników, zarówno standardowych, jak i znaczników pochodzących z bibliotek znaczników i znaczników definiowanych przez użytkownika. Najczęściej wartość wyrażenia JSP EL jest zwracana jako łańcuch znaków. Wyrażenia JSP EL przyjmują postać ${zmienna.pole} (poza wyrażeniami arytmetycznymi i logicznymi). Ewaluacja wyrażenia ${produkt.cena} przebiega na podstawie zachowania metody PageContext.findAttribute() i polega na przeszukaniu zasięgów page, request, session i application w poszukiwaniu obiektu o nazwie "produkt" i cesze "cena". Wyrażenie ${produkt.cena} jest traktowane przez JSP EL w taki sam sposób jak wyrażenie ${produkt["cena"]} i obie notacje są zunifikowane. W zależności od faktycznego typu obiektu "produkt" wynik ewaluacji może zwrócić:
- jeśli "produkt" jest typu java.util.Map, to ${produkt.cena} zwraca produkt.get("cena") lub null jeśli !produkt.containsKey("cena")
- jeśli "produkt" jest typu java.util.List lub Array, to ${produkt.cena} zwraca produkt.get((int)cena) lub null (np. jeśli metoda get zwróci wyjątek IndexOutOfBoundsException)
- jeśli "produkt" jest komponentem JavaBean, to ${produkt.cena} zwraca produkt.getCena() lub null (jeśli komponent zwróci wyjątek)
Wyrażenia JSP EL są ewaluowane od lewej strony do prawej strony, typ wynikowy jest automatycznie konwertowany do typu oczekiwanego.