Seminar Web-Anwendungen mit JSP u. ASP.NET entwickeln JavaServer Faces Vortragender: Thomas Dermin Custom-Components.

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Cloud42 Dominik Muhler Seminar StuPro cims cims.
Programmieren im Großen von Markus Schmidt und Benno Kröger.
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Aufbau des Internets Überblick Prof. Dr. T. Hildebrandt
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Java 2 Enterprise Edition (J2EE)
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Web 3.0 – Programmierung – Semantic Web / CIDOC CRM
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Zukunft des Webs? Dennis Beer Christian Blinde
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
Marcus Haller & René Schulze
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
Wir bauen uns eine Webapplikation!
Applets Java für’s Web.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Entwurfs- und Implementationsdiagramme
Mit 3 Schichte zum Erfolg
...ich seh´es kommen !.
Präsentation von Sonja Pathe
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Generalisierung/Spezialisierung Subtypisierung/Vererbung
Bedeutung von Internet-Technologien
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Auslegung eines Vorschubantriebes
Oliver Spritzendorfer Thomas Fekete
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Datenanbindung in Webapplikationen
Analyseprodukte numerischer Modelle
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
Der Erotik Kalender 2005.
© Fink/Spengler/AINF-Lehrgang 2003 – Folie 1 AINF/3. Jahrgang Netzwerke Anwendungen (Clientseitig) Karl Brenner, Andreas Fink, Gerhard Jüngling, Albert.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Das IT - Informationssystem
Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.
Java-Kurs Übung Besprechung der Hausaufgabe
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
/14Mohamed Sabbar, Medieninformatik - Fachseminar 14/12/09 Java Server Faces (JSF) „JSF“ ist mehr als nur eine Insel Fachseminar WS 09/10 Mohamed Sabbar.
1 JavaServer Pages Stephan Baldes JavaServer Pages Einführung
Microsoft Silverlight Autor: Christian Pirker. Inhalt Einführung Silverlight Einführung XAML Silverlight 1.0 und 1.1 Silverlight 2.0 Silverlight 3.0 Ausblick.
Tutorium Software-Engineering SS14 Florian Manghofer.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
© 2012 TravelTainment Einführung in Spring Web MVC Seminarvortrag Sebastian Hesse
Jakarta Struts Quasi-Standard für JSP-basierte Entwicklung: Jakarta Struts Key Features von Struts: Implementierung des Action-Command-Pattern („Model.
Wesentliche Bestandteile:
 Präsentation transkript:

Seminar Web-Anwendungen mit JSP u. ASP.NET entwickeln JavaServer Faces Vortragender: Thomas Dermin Custom-Components

Inhaltsverzeichnis – Teil 1 1.Was ist JavaServer Faces? 2.ManagedBeans 2.1 Beispiel: ArtikelHandler (Quellcode) 2.2 Beispiel: ArtikelHandler (XML-Konfiguration) 3.JavaServer Faces Expression Language 4.Standardkomponentenmodell 4.1 Beispiel: dataTable 5.Live Vorführung: Artikelliste Seite 2 Inhaltsverzeichnis

Inhaltsverzeichnis – Teil 2 6.MVC – Entwurfsmuster 7.Benutzerdefinierte Komponenten 7.1 Trennung von Verhalten und Darstellung 7.2 Aufbau einer Komponente 7.3 Das Verhalten 7.4 Die Darstellung 7.5 Verknüpfung von Verhalten und Darstellung 8.Live-Vorführung: Warenkorb-Komponente 9.Fazit Seite 3 Inhaltsverzeichnis

Was ist JavaServer Faces ? Ein Framework: -Für Benutzungsschnittstellen -Auf Java-Basis -Für Web-Anwendungen Technologie basiert auf: -JSP -Servlets Seite 4 1. Was ist JavaServer Faces?

ManagedBeans Was: -JavaBean -Zur Unterstützung der UI-Komponenten -Teil des Controllers (MVC-Muster) -Verwaltet durch die JSF-Implementierung Deklaration der ManagedBean: a)Konfiguration in faces-config.xml b)Verwendung von Annotation Seite 5 2. ManagedBeans

ManagedBean: ArtikelHandler Quellcode: 1. public class ArtikelHandler 2. { 3. private LinkedList artikelliste; 4. 5.public ArtikelHandler() { } 6. 7.public LinkedList getArtikelliste() {…} 8.public void setArtikelliste(LinkedList artikelliste){…} 9. } Seite Beispiel: ArtikelHandler (Quellcode)

ManagedBean: ArtikelHandler XML-Konfiguration(faces-xonfig.xml) Artikel Handler artikelHandler shop.controller.ArtikelHandler application Seite Beispiel: ArtikelHandler (XML-Konfiguration)

JSF Expression Language Was: -Kleine Scriptsprache zur Auswertung von Ausdrücken -Basiert auf JSP-EL Sytax: #{ JSF-EL-Ausdruck } Beispiel: #{17 + 3} #{artikelHandler.artikelliste} //siehe nächste Seite! Seite 8 3. JavaServer Faces Expression Language

Standardkomponentemodell JSF definiert ein: -hierarchisch -Komponentenmodell -wiederverwendbare UI-Komponentenelemente -Aufbau ähnelt Java-Swing Seite 9 4. Standardkomponentenmodell

Standardkomponentemodell Aufbau: Seite Standardkomponentenmodell UIComponent UIComponentBase UIForm……

Komponente: dataTable -Erzeugt eine HTML Tabelle -Spaltenorientiert (HTML = Zeilenorientiert) -Kombiniert mit einer Zählschleife -Value-Attribut erwartet eine Liste/Array von Objekten -Var- gibt den Namen des aktuellen Objekts an Seite Beispiel: dataTable

Komponente: dataTable Beispiel: Artikelliste 1.<h:dataTable var=derArtikel 2.value=#{artikelHanderl.artikelliste}> x. …viele weitere Spalten können hier definiert werden! y. Seite Beispiel: dataTable

Komponente: dataTable Beispiel: Artikelliste (erzeugter Code) ArtikelNr x. … dynamisch: je nach Größe der Liste! y. z. Seite Beispiel: dataTable

MVC-Entwurfsmuster Beispiel: Der Controller hält View und Model zueinander konsistent! Seite MVC-Entwurfsmuster View (JSP + JSF) [Artikelliste.jsp] Model (Java-Klasse) [Artikel.java] Controller (JavaBean) [ArtikelHandler.java]

MVC-Entwurfsmuster Problem: MVC arbeitet mit Zuständen, aber JSF basiert auf der Zustandslosen Kommunikation von HTTP! Lösung: Speichern des Zustandes des Komponentenbaumes zwischen zwei Anfragen! Durch den Vergleich des alten mit dem neuen Zustandes ergibt sich logisch ob z.b. Werte in Komponente verändert haben: die Folge könnte ein Value-Change Event sein. Registrierte Controller könnten darauf reagieren. Seite MVC-Entwurfsmuster

Live Vorf ü hrung: Artikelliste

Verhalten und Darstellung Trennung von Verhalten(bzw. Zustand) und Darstellung einer Komponente! Seite 17 UI-Komponente Verhalten Darstellung (Renderer) 7.1 Trennung von Verhalten und Darstellung

Verhalten und Darstellung 1.Vorteil: MVC-Muster Optimierung! Seite Trennung von Verhalten und Darstellung View (JSP) [Kundenliste.jsp]: + Darstellungen der Komponenten (z.b HTML) Model (Java-Klasse) [Kunde.java] Controller (JavaBean) [KundenHandler.java] + Verhalten der Komponenten

Verhalten und Darstellung 2.Vorteil: Flexibler Austausch der Darstellungsart! Seite Trennung von Verhalten und Darstellung Komponente HTML SVG (skalierbare Vektorgrafik)

Aufbau einer Komponente Seite Aufbau einer Komponente UI-Komponente Verhaltenklasse Darstellungsklasse (Renderer) Tagklasse

Das Verhalten Aufgabe: Darstellungs-unabhängiges Verhalten realisieren. 1.Datenstruktur inkl. Verwaltungsmethoden 2.Speichern des aktuelles Zustandes 3.Laden eines alten Zustandes 4.Eventerzeugung Seite Das Verhalten

Das Verhalten Beispiel: Ausgabelabel für eine Eingabekomponente Seite Das Verhalten Verhaltensklasse der Komponente Attribut: String label; Attribut: String forId;

Das Verhalten Implementierung: 1.Benötigte Attribute hinzufügen (inkl.Verwaltungsmethoden) 2.Renderertyp im Konstruktur definieren 3.Oberklasse: UIComponentBase ableiten Seite Das Verhalten

Das Verhalten Implementierung: 4.Komponentenfamilie angeben public String getFamily (){ … } 5.Aktuellen Zustand speichern public Object saveState(…){ … } 6.Einen alten Zustand wiederherstellen public void restoreState(…){ … } Seite Das Verhalten

Die Darstellung Aufgabe: Repräsentation der Komponente in die für den Benutzer darstellbare Form. 1.Kodierung der Komponenten in einer Darstellung 2.Decodierung aus der Darstellung in die Komponente zurück Seite Die Darstellung

Die Darstellung Beispiel: HTML aber auch SVG wäre möglich (d.h. rendert) Seite Die Darstellung Komponente HTML SVG (skalierbare Vektorgrafik)

Die Darstellung Implementierung: 1.Oberklasse javax.faces.render.Renderer ableiten 2.Kodierung der Starttags encodeBegin(…) 3.Kodierung der Kindelemente encodeChildren(…) Seite Die Darstellung

Die Darstellung Implementierung: 4.Kodierung des Endtags encodeEnd(…) 5.Dekodierung der Request-Paramter und der Komponente zuweisen decode(…) 6.Request-Paramter die nicht String / Object sind Konvertieren: getConvertedValue(…) Seite Die Darstellung

Die Verkn ü pfung Aufgabe: Die Verknüpfung der Verhaltensklasse mit der Rendererklasse. 1.Angabe der Komponentenfamilie 2.Angabe des Renderertyps 3.Attribute des Tags der Komponente zuweisen 4.Weitere Komponenten-unabhängige Attribute wie z.b. styleClass für die Angabe von CSS- Klassen im Tag Seite Die Verknüpfung von Darstellung und Verhalten

Die Verkn ü pfung Beispiel: Ein Tag verknüpft mit dem HTML-Renderer, der andere den SVG-Renderer. Seite Die Verknüpfung von Darstellung und Verhalten Verhalten der Komponente HTML-Renderer SVG-Renderer Tag4HTML Tag4SVG

Die Verkn ü pfung Implementierung: 1. Ableiten der Oberklasse:javax.faces.webapp.UIComponentELTag 2.Alle Attribute des Verhaltensklasse hinzufügen (inkl. Verwaltungsmethoden) 3.Nicht-Verhaltensspezifische Komponentenattribute hinzufügen z.b. styleClass für CSS-Klassen angabe (ink. Verwaltungsmethoden) Seite Die Verknüpfung von Darstellung und Verhalten

Die Verkn ü pfung Implementierung: 4.Komponententyp definieren public String getComponentType() 5.Renderertyp definieren public String getRendererType() 6.Im Konstruktur die Werte der Komponente zuweisen Seite Die Verknüpfung von Darstellung und Verhalten

Live Vorf ü hrung: Warenkorb-Komponente

Vielen Danke f ü r Ihre Aufmerksamkeit ! Vortragender: Thomas Dermin

Noch Fragen ? Vortragender: Thomas Dermin

Quellenangabe Müller, Bernd: Java Server Faces: Ein Arbeitsbuch für die Praxis, 1. Auflage, Carl Hanser Verlag München, 2006 Wien Internet: e/javaserverfaces/