36
JavaServer Faces Kapitel 4: JavaServer Faces im Detail Max Mustermann Uni Musterhausen Fachbereich Informatik Wintersemester 2006/07 Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 1 / 36

JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

  • Upload
    lyduong

  • View
    233

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

JavaServer FacesKapitel 4: JavaServer Faces im Detail

Max Mustermann

Uni MusterhausenFachbereich Informatik

Wintersemester 2006/07

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 1 / 36

Page 2: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

Grundlage der Folien

Bernd MullerJavaServer FacesEin Arbeitsbuch fur die PraxisHanser-VerlagISBN 3-446-40677-834,90 EuroBei Amazon kaufen

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 2 / 36

Page 3: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

Ziel

Detailierte Beschreibung aller Konzepte, Mechanismen und Hintergrundezentraler JSF-Gebiete

I Bearbeitungsmodell

I JSF-Expression-Language

I Backing-Beans

I Validierung und Konvertierung

I Event-Verarbeitung

I Navigation

I Internationalisierung

I Konfiguration

I Client-Ids und Komponenten-Ids

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 3 / 36

Page 4: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage

Bearbeitungsmodell einer JSF-Anfrage

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 4 / 36

Page 5: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage

HTTP, Servlets, MCV, Zustand, . . .

Problem:

I JSF werden durch (ein) Servlet(s) implementiert

I damit HTTP-basiert

I wie passt das mit zustandsbehafteten Komponenten und MVCzusammen?

Losung:I sehr viel Aufwand treiben, um HTTP und dessen Nachteile zu

verstecken:I Zustande der Komponenten implementierenI Event-Modell definieren (das alte, bekannte!)I . . . daher . . .I Aufteilen der Request-Bearbeitung in einzelne Schritte

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 5 / 36

Page 6: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage

Prinzipiell unterscheiden ob von/nach JSF-Seite

I Es gibt vier Kombinationsmoglichkeiten von JSF-Anfrage undJSF-Antwort mit anderen Anfragen und Antworten

Tabelle 4.1: Moglichkeiten von Anfragen und AntwortenJSF-Anfrage andere Anfrage

JSF-Antwort 1 2

andere Antwort 3 4

I 1: JSF-Seite ruft JSF-Seite

I 2: z.B. HTML-Seite linkt auf JSF-Seite

I 3: z.B. JSF-Seite erzeugt PDF

I 4: hat nichts mit JSF zu tun

Die folgenden Ausfuhrungen beziehen sich in der Regel auf den 1. Fall

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 6 / 36

Page 7: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage

Das Bearbeitungsmodell einer JSF-Anfrage

Eve

nt−V

erar

beitu

ng

Eve

nt−V

erar

beitu

ng

Eve

nt−V

erar

beitu

ng

Eve

nt−V

erar

beitu

ng

des

Kom

pone

nten

baum

esW

iede

rher

stel

lung

Anf

rage

wer

teÜ

bern

ahm

e de

r

Val

idie

rung

Mod

ello

bjek

teA

ktua

lisie

rung

der

Anw

endu

ngsl

ogik

Auf

ruf d

er

Ren

dern

der

Ant

wor

t

Fehl

er

Fehl

er

Fehl

er

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 7 / 36

Page 8: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.1 Wiederherstellung des Komponentenbaumes

Wiederherstellung desKomponentenbaumes

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 8 / 36

Page 9: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.1 Wiederherstellung des Komponentenbaumes

Komponentenbaum

I die View ist eine nicht sichtbare Komponente und Wurzel desKomponentenbaumes einer Seite

I sie enthalt damit alle Komponenten der Seite

I Komponenten werden zwischen der Antwort und einer erneutenAnfrage gespeichert

I dies kann auf dem Client oder dem Server geschehen

I der View wird eine View-Id zugeordnet, die aus dem Anfrage-URIbesteht

I bei /bank/pages/login.jsf also /pages/login.jsfI View-Id wird in Session gespeichert, daher feststellbar ob

I Anfrage von JSF-Seite kommt (Alternative 1 in Tabelle 4.1), oderI zum ersten Mal besucht wird (Alternative 2 in Tabelle 4.1)

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 9 / 36

Page 10: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.1 Wiederherstellung des Komponentenbaumes

Speichern und Wiederherstellen

I in Alternative 1 wird gespeicherter Komponentenbaumwiederhergestellt

I im Alternative 2 wird ein neuer Komponentenbaum erstellt

I Komponentenbaum (neuer oder wiederhergestellter) wird dann imFacesContext gespeichert

I FacesContext enthalt alle Informationen im Zusammenhang derBearbeitung einer JSF-Anfrage

I Wiederherstellung umfasst auch Wiederherstellen aller verbundenenEvent-Listener, Validierer, Konvertierer und Backing-Beans

I wird Seite zum ersten Mal besucht (Alternative 2 Tabelle 4.1) wirdzur Render-Response-Phase gesprungen, ansonsten zur Ubernahmeder Anfragewerte

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 10 / 36

Page 11: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.2 Ubernahme der Anfragewerte

Ubernahme der Anfragewerte

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 11 / 36

Page 12: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.2 Ubernahme der Anfragewerte

Ubernahme der Anfragewerte

I einige UI-Komponenten lassen Benutzereingaben zu

I das zugrunde liegende HTML-Formular schickt diese alsPOST-Request per HTTP an den Server

I dieser POST-String muss geparst werden und die Parameter mit ihrenjeweiligen Werten mussen herausgefiltert werden

I diese Werte werden dann vorlaufig den Komponenten zugewiesen

I vorlaufig, weil Konvertierung und Validierung noch schief gehenkonnen

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 12 / 36

Page 13: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.3 Validierung

Validierung

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 13 / 36

Page 14: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.3 Validierung

Konvertierung und Validierung

I jetzt sind alle Anfrageparameter fur UI-Komponenten verfugbar

I vor Validierung muss noch konvertiert werden

I alle Post-Parameter sind Strings, daher in entsprechenden Typkonvertieren (automatisch fur Character, Boolean, Byte, Integer,Short, Long, Float, Double und deren primitive Versionen sowieBigDecimal und BigInteger)

I Validierer uberprufen dann Eingaben

I eingebaut: required="true"

I eingebaut: Zahlen von bis, String-Lange

I jetzt der Komponente Wert zuweisen

I falls Wertanderung, ValueChangeEvent werfen

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 14 / 36

Page 15: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.4 Aktualisierung der Modellobjekte

Aktualisierung der Modellobjekte

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 15 / 36

Page 16: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.4 Aktualisierung der Modellobjekte

Aktualisierung der Modellobjekte

I jetzt sicher, dass alle Werte vom richtigen Typ und valide sind

I also den Modellobjekten zuweisen (bis jetzt alles ohne Modellobjekte)

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 16 / 36

Page 17: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.4 Aktualisierung der Modellobjekte

Beispiel

<h:inputText id="betrag" required="true"value="#{ ueberweisungHandler.betrag}">

Das Property betrag des Objekts ueberweisungsHandler bekommt denWert des Eingabefeldes mit der Id betrag zugewiesen (Setter-Aufruf).

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 17 / 36

Page 18: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.5 Aufruf der Anwendungslogik

Aufruf der Anwendungslogik

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 18 / 36

Page 19: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.5 Aufruf der Anwendungslogik

Aufruf der Anwendungslogik

I bis jetzt alles automatisch ohne Anwendungslogik:I decodierenI KonvertierenI ValidierenI Wertzuweisung (Setter-Aufruf)

I Anwendungslogik durch Action-Listener

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 19 / 36

Page 20: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.5 Aufruf der Anwendungslogik

Action-Listener

Verschiedene Moglichkeiten (Details spater)

<h:commandButton id="feld-0"image="#{ tttHandler.image [0]}"

actionListener="#{ tttHandler.zug}" />

<h:commandButton value="Anmelden"action="#{ kundenHandler.login}" />

<h:commandButton id="button" value="OK"action="success">

<f:actionListener ...

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 20 / 36

Page 21: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.6 Rendern der Antwort

Rendern der Antwort

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 21 / 36

Page 22: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.6 Rendern der Antwort

Rendern der Antwort

I Rendern durch Spezifikation nicht festgelegt

I jede JSF-konforme Implementierung muss mindestens JSP/HTMLunterstutzen

I in Kapitel 8 werden wir Alternativen kennen lernen (XHTML, XUL)

I zuletzt Abspeichern des Komponentenbaumes

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 22 / 36

Page 23: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.1 Bearbeitungsmodell einer JSF-Anfrage 4.1.6 Rendern der Antwort

Aufgabe

Laden Sie die Datei web/WEB-INF/web.xml derOnline-Banking-Anwendung aus Kapitel 2 in Ihren Editor. DerContext-Parameter javax.faces.STATE SAVING METHOD kann die Werteclient und server haben. Testen Sie beide, indem Sie neu deployen unddie erzeugten HTML-Seiten analysieren. Erkennen Sie den Unterschied?

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 23 / 36

Page 24: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.2 JSF-Expression-Language

JSF-Expression-Language

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 24 / 36

Page 25: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.2 JSF-Expression-Language

JSF-Expression-Language

I die JSF-Expression-Language (JSF-EL) ahnelt derJSP-Expression-Language (syntaktisch)

I sie sind jedoch nicht kompatibel

I JSF-EL wird zwei Mal ausgewertet (Aktualisierung Modellobjekte undRender-Phase)

I es gibt Bestrebungen, dies zu andern (Unified Expression Language)

I Navigation uber Objekt-Properties analog zu XPath

I Syntax:"#{ ... }"

I StringI fangt mit Hash (Nummernzeichen, Lattenzaun) anI ist in geschweifte Klammern eingeschlossen

I Inhalt: arith. oder log. Ausdrucke, Wertebindungen,Methodenbindungen

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 25 / 36

Page 26: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.2 JSF-Expression-Language 4.2.1 Bean-Properties

Bean-Properties

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 26 / 36

Page 27: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.2 JSF-Expression-Language 4.2.1 Bean-Properties

Bean-Properties

I eine Wertebindung (engl. Value Binding) bindet Wert einerUI-Komponente an Bean-Property (und umgekehrt)

I oder UI-Komponente selbst an Property

I oder UI-Komponenten-Property initialisiert

I eine Methodenbindung (engl. Method Binding) bindet Wert einerUI-Komponente an Bean-Methode (wird bei Event-Handlern undValidierungsmethoden verwendet)

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 27 / 36

Page 28: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.2 JSF-Expression-Language 4.2.1 Bean-Properties

Beispiele fur Wertebindungen

<h:outputText value="Zugriff auf Bean-Properties:"style="font-weight: bold;" />

<h:outputText value="#{ elHandler.name}" /><h:outputText value="#{ elHandler[’name ’]}" /><h:outputText value="Dies sind tolle #{ elHandler.name}" /><h:outputText value="#{ elHandler.array [0]}" /><h:outputText value="#{ elHandler.map[’zwei ’]}" /><h:outputText

value="#{ elHandler.map[elHandler.array [2]]}" />

Zeitpunkt der Auswertung

I Lesen (Getter) in der Phase Rendern der Antwort

I Schreiben (Setter) in Phase Aktualisierung der Modellobjekte

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 28 / 36

Page 29: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.2 JSF-Expression-Language 4.2.1 Bean-Properties

Was ist elHandler?

Eine Managed-Bean der Klasse ElHandler

public class ELHandler {

private String name = "Uebungen mit der Expression -Language";private Integer jahr = 2006;private String [] array = new String []{ "eins", "zwei", "drei" };private Map map = new HashMap ();

public ELHandler () {super ();map.put("eins", "Erster Map -Eintrag");map.put("zwei", "Zweiter Map -Eintrag");map.put("drei", "Dritter Map -Eintrag");

}

...}

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 29 / 36

Page 30: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.2 JSF-Expression-Language 4.2.2 Vordefinierte Variablen

Vordefinierte Variablen

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 30 / 36

Page 31: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.2 JSF-Expression-Language 4.2.2 Vordefinierte Variablen

Variablenname Beschreibung

header Eine Map von Request-Header-Werten. Schlussel ist derHeader-Name, Ruckgabewert ist ein String.

headerValues Eine Map von Request-Header-Werten. Schlussel ist derHeader-Name, Ruckgabewert ist ein Array von Strings.

cookie Eine Map von Cookies (javax.servlet.http.Cookie).Schlussel ist der Cookie-Name.

initParam Eine Map von Initialisierungsparametern der Anwendung.Diese werden im Deployment-Deskriptor definiert.

param Eine Map von Anfrageparametern. Schlussel ist derParametername. Ruckgabewert ist ein String.

paramValues Eine Map von Anfrageparametern. Schlussel ist derParametername. Ruckgabewert ist ein Array von Strings.

facesContext Die FacesContext-Instanz der aktuellen Anfrage.view Die aktuelle View.requestScope Eine Map von Variablen mit Request-Scope.sessionScope Eine Map von Variablen mit Session-Scope.applicationScope Eine Map von Variablen mit Application-Scope.

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 31 / 36

Page 32: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.2 JSF-Expression-Language 4.2.2 Vordefinierte Variablen

Beispiele mit vordefinierten Variablen

<h:outputTextvalue="Zugriff auf implizite JSF-EL-Objekte:"style="font-weight: bold;" />

<h:outputText value="#{ header[’User-Agent ’]}" />

<h:outputText value="#{view.locale}" />

<h:outputTextvalue="#{ initParam[’javax.faces.STATE_SAVING_METHOD ’]}" />

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 32 / 36

Page 33: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.2 JSF-Expression-Language 4.2.3 Arithmetische und logische Ausdrucke

Arithmetische und logische Ausdrucke

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 33 / 36

Page 34: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.2 JSF-Expression-Language 4.2.3 Arithmetische und logische Ausdrucke

Arithmetische und logische Ausdrucke

I JSF-EL umfasst vollstandige Arithmetik und Logik

I damit in der Regel kein Ruckgriff auf Java notig

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 34 / 36

Page 35: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

Op Alt. Beschreibung

. Zugriff auf eine Property, Methode oder einen Map-Eintrag

[] Zugriff auf ein Array- oder Listen-Element oder einen Map-Eintrag

() Klammerung fur Teilausdrucke

?: Bedingter Ausdruck:<expr> ? <true-value> : <false-value>

+ Addition

- Subtraktion oder negative Zahl

* Multiplikation

/ div Division

% mod Modulo

== eq gleich

!= ne ungleich

< lt kleiner

> gt großer

<= le kleiner-gleich

>= ge großer-gleich

&& and logisches UND

|| or logisches ODER

! nor logische Negation

empty Test auf null, einen leeren String, oder Test auf Array, Mapoder Collection ohne Elemente

Page 36: JavaServer Faces Kapitel 4: JavaServer Faces im Detail fileGrundlage der Folien Bernd M¨uller JavaServer Faces Ein Arbeitsbuch f¨ur die Praxis Hanser-Verlag ISBN 3-446-40677-8 34,90

4.2 JSF-Expression-Language 4.2.3 Arithmetische und logische Ausdrucke

Beispiele arithische und logische Ausdrucke

<h:outputText value="Arithmetische Ausdruecke:"

style="font-weight: bold;" />

<h:outputText value="#{17 + 4}" />

<h:outputText

value="Das uebernaechste Jahr ist #{ elHandler.jahr + 2}" />

<h:outputText

value="#{ elHandler.jahr} ist #{(( elHandler.jahr % 4)

== 0 ? ’ein ’ : ’kein ’)} Schaltjahr" />

<h:outputText value="Boole ’sche Ausdruecke:"

style="font-weight: bold;" />

<h:outputText value="#{’konstante ’ == ’konstante ’}" />

<h:outputText value="#{ elHandler.jahr > 2000}" />

<h:outputText

value="#{ elHandler.jahr > 2000 && (elHandler.jahr %4 != 0)}" />

Max Mustermann (FBI, Uni Musterhausen) JSF Kapitel 4: JavaServer Faces im Detail WS 2006/07 36 / 36