Java Server Faces Urs Frei Inhalt n JSF
- Slides: 31
Java. Server Faces Urs Frei
Inhalt n JSF Funktionsweise ¡ ¡ n n n Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung) Apache My. Faces
Was ist JSF n n Ein Framework für die Entwicklung von Benutzerschnittstellen in Java-Web. Applikationen Baut auf JSP auf JSF JSP n Sun Spezifikation
Erinnerungen an JSP n n n Nicht selten viel Java Code in der JSP Mühsamer Zugriff auf Javaobjekte Kommunikation mit Server nicht einfach
Bsp. JSP <%@ page language="java" %> <!DOCTYPE HTML PUBLIC "-//w 3 c//dtd html 4. 0 transitional//en"> <%fhsg. uebung 8. Address. Bean bean = (fhsg. uebung 8. Address. Bean)request. get. Attribute("address. Bean"); %> <html><head><title>Übung 8 - Adressverwaltung</title></head> <body bgcolor="#FFFFFF"><form> <h 1>Adresse anzeigen: </h 1> <p> Vorname: <%=bean. get. First. Name() %></br> Nachname: <%=bean. get. Last. Name() %></br> Adresse: <%=bean. get. Address() %></br> PLZ: <%=bean. get. Zip() %></br> Ort: <%=bean. get. City() %></br> Telefon: <%=bean. get. Phone() %></br> E-Mail: <%=bean. get. Email() %></br> <a href="controller? action=showlist">zurück</a> </form></body></html> </p>
JSF soll Arbeitserleichterung für Entwickler bieten, in: n Komponenten ¡ ¡ n Datentransfer ¡ ¡ n Konverter Validierung Zustandsspeicherung ¡ n Web Applikation wird zusammengebaut Möglich eigene Komponenten bauen Speicherung Applikationszustand Ereignisbehandlung ¡ Server kann Clientereignisse behandeln
Bestandteile für JSF n n n web. xml JSF Files faces-config. xml Java Klassen in der Java Bean Form Expression Language (EL)
JSF File n n Ist ein *. jsp mit taglib Was sind taglib? ¡ ¡ Ermöglicht die Definition eigener Tags Verwendung: n n „import“ Definition Verwenden wie die üblichen Tags
Beispiel taglib Verwendung <%@ taglib uri="http: //java. sun. com/jsf/html" prefix="h" %> <%@ taglib uri="http: //java. sun. com/jsf/core" prefix="f" %> <html> <head> <title>Gespeichert</title> </head> <body> <f: view> <h: form> <h: output. Label>Die Daten sind gespeichert: </h: output. Label> </h: form> </f: view> </body> </html>
faces-config. xml n Managed-Beans ¡ n Navigationsregeln ¡ n Wie sollen sich die Komponenten zeichnen Validatoren ¡ n Welche Seite folgt auf welche Seite Renderer ¡ n Zugriff auf die Daten im Modell Welche Eingabe vom User ist gültig Konverter ¡ Wie sollen die Eingabedaten konvertiert werden
Managed-Beans (facesconfig. xml) n Klassen, die nach den Konventionen von Java Bean erstellt wurden ¡ n Member mit set und get Werden im faces-config. xml definiert ¡ Sehr einfacher Zugriff vom JSP
Expression Language (EL) n n Ermöglicht den Zugriff auf die Managed-Beans aus dem JSP Aufbau: „#{managed. Bean. Name. Member. Name}“
Voraussetzungen für JSF n Entwicklungsumgebung Eclipse ¡ ¡ n n WTP (Eclipse Project) für JSF 1. 2 neuste Version nötig (I 20070313) Exadel Studio, Plugin für Eclipse (vom hören sagen) Java EE 5 mit Sun Application Server PE 9 Tomcat 5. 5 keine Unterstützung, da alte JSP Version
So einfach ist die Umsetzung!! n Beispiel „Anwendung“: Value. Changed. Listener Validator Datumskonverter Tabellenerzeugung Statische Navigation Dynamische Navigation
Web. xml <? xml version="1. 0" encoding="UTF-8"? > <web-app id="Web. App_ID" version="2. 4" xmlns="http: //java. sun. com/xml/ns/j 2 ee" xmlns: xsi="http: //www. w 3. org/2001/XMLSchema-instance" xsi: schema. Location="http: //java. sun. com/xml/ns/j 2 ee/web-app_2_4. xsd"> <servlet-name>Faces Servlet</servlet-name> <servlet-class> javax. faces. webapp. Faces. Servlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*. faces</url-pattern> </servlet-mapping> </web-app>
Input. jsp <%@ taglib uri="http: //java. sun. com/jsf/html" prefix="h" %> <%@ taglib uri="http: //java. sun. com/jsf/core" prefix="f" %> <html>… <body><f: view> <h 3>Bitte Name und Vorname eingeben</h 3> … Vorname: <h: input. Text value="#{person. first. Name}"/> <h: command. Button value="Zeigen" action="show"/> … </html>
Managed-Bean (facesconfig. xml) <managed-bean> <managed-bean-name>person </managed-bean-name> <managed-bean-class> ch. naturasoft. jsf. address. model. Person </managed-bean-class> <managed-bean-scope>session </managed-bean-scope> </managed-bean>
Navigationsregeln n Zwei Arten ¡ ¡ Dynamisch Navigation Statisch Navigation
Dynamische Navigation n JSP (Input. jsp) ¡ n Managed-Bean (java) ¡ n <h: command. Button value="Speichern" action="#{saver. save. Data}"/> public String save. Data(){ return "ok"; } faces-config. xml ¡ <navigation-rule> <from-view-id>/Input. jsp</from-view-id> <navigation-case> <from-outcome>ok</from-outcome> <to-view-id>/Saved. jsp</to-view-id> </navigation-case> </navigation-rule>
Statische Navigation n JSP (Input. jsp) ¡ n <h: command. Button value="Zeigen" action="show"/> faces-config. xml ¡ <navigation-rule> <from-view-id>/Input. jsp</from-view-id> <navigation-case> <from-outcome>show </from-outcome> <to-view-id>/Show. jsp</to-view-id> </navigation-case> </navigation-rule>
Value. Changed. Listener n JSP (Input. jsp) ¡ n <h: input. Text value="#{person. last. Name}"> <f: value. Change. Listener type="ch. . . Name. Value. Changed. Lis"/> </h: input. Text> Java ¡ public class Name. Value. Changed. Lis implements Value. Change. Listener { public void process. Value. Change(Value. Change. Event arg 0)throws Abort. Processing. Exception { … } }
Validator n JSP (Input. jsp) <h: input. Text value="#{person. birthday}"> <f: validator binding="#{date. Validator}"/> </h: input. Text> n Java public class Date. Validator implements Validator { public void validate(Faces. Context f, UIComponent ui, Object o)throws Validator. Exception { … n faces-config. xml <managed-bean> <managed-bean-name>date. Validator</managed-bean-name> <managed-bean-class> ch. . . Date. Validator</managed-bean-class> <managed-bean-scope>none</managed-bean-scope> </managed-bean>
Konverter n n Vorgefertigter Konverter für Datum JSP (Input. jsp) <h: input. Text value="#{person. birthday}"> <f: convert. Date. Time/> </h: input. Text> n Erzeugung eigener Konverter möglich
Tabellenerzeugung n JSP (List. jsp) <h: data. Table var="tmp. Person" value="#{model. persons}" border="1"> <h: column> <f: facet name="header"> <h: output. Text value="Vorname"/> </f: facet> <h: output. Text value="#{tmp. Person. first. Name}"/> </h: column> <f: facet name="header"> <h: output. Text value="Nachname"/> </f: facet> <h: output. Text value="#{tmp. Person. last. Name}"/> </h: column> </h: data. Table> n Voraussetzungen: alle Manages-Bean sind registriert (config-faces. xml)
Eclipse im Einsatz
My. Faces (Apache) n n Implementation des JSF Standards Mehr Komponenten Noch weitere Vereinfachungen Hat div. Unterprojekte mit verschiedenen Weiterentwicklungen
Beispielkomponenten
Beispielkomponenten
Ausblick: n Web Applikationen erstellen mit ¡ ¡ ¡ n Apache My. Faces Ajax Spring (Hibernate) Ein Bsp. dazu findet Ihr im Buch
Links n n Eclpse www. eclipse. org WTP http: //www. eclipse. org/webtools/ Exadel-Studio www. exadel. com Plugin für Eclipse Java EE 5 java. sun. com
Referenzen n n JSF@Work ISBN 3 -89864 -401 -4 http: //java. sun. com/javaee/javaserverf aces/ JSF Spezifikation http: //www. jsf-forum. de/ mit Tutorials http: //myfaces. apache. org/ Apache my. Faces http: //www. irian. at/myfaces. jsf
- Polarity analysis heiner frei
- Estrutura interna e externa de frei luis de sousa
- Batkf
- Heiner frei polaritätsanalyse
- Romantismo frei luis de sousa
- Tendinitis calcarea homöopathie
- Frei jacir de freitas faria
- Lymphogranuloma venereum ppt
- Inhalt tarifvertrag
- Projektstatusbericht kurz
- Papa hamlet zusammenfassung
- Projektstatusbericht inhalt
- Gretchens entwicklung
- Interpretation der gute mensch von sezuan
- Fissura pterygopalatina
- Ronja die räubertochter zusammenfassung
- Management summary inhalt
- Canalis obturatoria
- Hans fallada kleiner mann was nun inhalt
- Inhalt des films
- Unendliche geschichte schauspieler
- Mario und der zauberer epoche
- 8 vertices 12 edges
- Jsf lifecycle
- Jsf number converter
- Fastlane concat string
- Oficio nada consta prf
- Netbeans jsf
- Que es jsf
- Jsf f:convertnumber
- Jsf life cycle
- Jsf session scope