Tag-Libraries1 seit JSP Version 1.1 Sammlung selbst definierter Tags (Custom Tags) Tagdefinition: Body Tags halten sich an XML-Konvention Präfix bezeichnet.

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

Imperative Programmierung
1 Funktionstemplates Einbinden von Templates: –Eine *.o Datei, die durch Übersetzen einer Datei nur mit Templates erzeugt wurde, enthält keinen Programmcode.
Objektorientierte Programmierung
Definition von Klassen in Java
Kritische Betrachtung
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Einführung Blue J.
HG13_ Herzgen, Jung & Lorkowski
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Java 2 Enterprise Edition (J2EE)
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
FH-Hof Java Packages Richard Göbel. FH-Hof Das Modulkonzept für Java Packages dienen zur Strukturierung größerer Java- Programme Ein Package kann: eigene.
Java: Grundlagen der Objektorientierung
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
XDoclet ETIS SS05.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
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 Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Remote Methode Invocation (RMI)
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Software Design Patterns Creational Patterns Structural Patterns Behavioral Patterns –Behavioral Class Patterns Interpreter Template Method Pattern –Behavioral.
DVG Klassen und Objekte
Einführung in die Programmierung Datensammlung
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Coccon das Web-XML-Publishing System Thomas Haller.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Java Programmierung.
Programmiervorkurs WS 2014/15 Instanzmethoden
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Einführung Blue J. Inhaltsverzeichnis  Definition  Vokabeln.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Einführung in die Programmierung mit Java
Benutzerdefinierte Tags
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
JSTL - JSP Standard Tag Library
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Abstrakte Klassen und das Interface-Konzept
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Tutorium Software-Engineering SS14 Florian Manghofer.
Konstruktoren.
Implementieren von Klassen
 Präsentation transkript:

Tag-Libraries1 seit JSP Version 1.1 Sammlung selbst definierter Tags (Custom Tags) Tagdefinition: Body Tags halten sich an XML-Konvention Präfix bezeichnet Namensraum  Vermeidung von Namenskonflikten

Tag-Libraries2 Motivation Vorteile: –Gute Wiederverwendbarkeit und Qualität (Test) –Lesbare und übersichtliche Struktur (Java ausgelagert) –Wissens- und Rollenaufteilung (Entwickler- Designer) Anwendung: –Mehrsprachige JSP-Seiten –Datenbankzugriffe –Automatische Generierung von s

Tag-Libraries3 Tag-Library-Deskriptor (TLD) –XML-Datei –Beschreibt, welche Tags Tag-Library bereitstellt –Legt für jedes Tag Tag-Handler-Klasse fest Tag-Handler (in WEB-INF/classes | lib) –Javaklassen (eine Klasse pro Tag) –Implementieren Aktionen, die beim Auftreten des Tags ausgeführt werden Funktionsweise Tag-Library Tag-Library- Deskriptor Tag-Handler =+

Tag-Libraries4 Einbindung in JSP mit taglib-Direktive: –uri:uniform resource identifier - eindeutige Identifizierung der genutzten Tag-Library –prefix: beliebiges Präfix, um Namenskonflikte zu vermeiden Tag kann dann eingebunden werden:

Tag-Libraries5 Tag-Library-Deskriptor (I) TLD ist XML-Dokument: -Elemente:

Tag-Libraries6 Tag-Library-Deskriptor (II) -Elemente:

Tag-Libraries7 Tag-Library-Deskriptor (III) -Elemente: <!-- legt fest, ob Attributwert zur Laufzeit auswertbar ist, true|false, z.B. /> -->

Tag-Libraries8 Tag-Handler Tag-Handler legt Semantik selbstdefinierter Tags fest wird zur Laufzeit eines JSPs instanziiert an bestimmten Stellen der Tag-Bearbeitung wer- den bestimmte Tag-Handler-Methoden aufge- rufen –deshalb Implementierung von Interface Tag bzw. BodyTag aus javax.servlet.jsp.tagext –einfacher verwendbare Defaultimplementationen: Klassen TagSupport bzw. BodyTagSupport

Tag-Libraries9 Arten von Tags Einfaches Tag –Body 1x oder gar nicht ausgegeben Iterierendes Tag –Body mehrfach ausgegeben BodyTag –manipuliert Body oder erzeugt ihn komplett neu vor Ausgabe Tag-Arten bauen aufeinander auf

Tag-Libraries10 Einfache Tags TAGTag-Handler vor TagObjekt erzeugen An Alle... public int doStartTag(); Aktion implementieren + Rückgabe von: 1.EVAL_BODY_INCLUDE: (Body ausgewertet + in Ausgabe eingefügt) oder 2.SKIP_BODY: (Bodyauswertung unterdrückt) public int doEndTag(); Aktion implementieren + Rückgabe von: 1.EVAL_PAGE: (Seitenverarbeitung fortgesetzt) oder 2.SKIP_PAGE: (Seitenverarbeitung beendet) nach Tagpublic void release() + Objekt zerstören

Tag-Libraries11 Tags mit Attributen Attribute dienen Anpassung des Tagverhaltens “/> Definition von Property + zugehörigen get/set- Methoden in Tag-Handler private int size; public void setSize(int size){this.size = size;} public int getSize(){return this.size;} -Element in TLD deklarieren

Tag-Libraries12 Iterierende Tags geben Body mehrfach aus z.B. um mehrere Ergebniszeilen einer DB- Anfrage zu formatieren und auszugeben neue Methode: doAfterBody() –nach Bearbeitung des Bodys aufgerufen –Rückgabewert entscheidet, ob Body noch einmal zu bearbeiten (arbeitet wie do...while) EVAL_BODY_AGAIN: noch einmal iteriert SKIP_BODY: Schluss

Tag-Libraries13 Tags mit Body-Verarbeitung(I) Tag liest Body vor Verarbeitung aus, verändert ihn oder erzeugt ihn komplett selbst erbt von BodyTagSupport (alle Methoden von TagSupport auch hier gültig) um Body auszuwerten, muss doStartTag() EVAL_BODY_TAG zurückgeben Tag-Handler implementiert i.d.R. doInitBody() und doAfterBody()

Tag-Libraries14 Tags mit Body-Verarbeitung(II) neue Methode: doInitBody() –für vom Body abhängige Initialisierungen –nach Setzen des Bodyinhaltes, aber vor Bodybearbeitung aufgerufen –nur bearbeitbar, wenn Rückgabewert doStartTag() EVAL_BODY_BUFFERED wenn Argument einfacher String oder einfacher Ausdruck, dann: Argument als Attribut, nicht als Body übergeben –einfachere Implementierung + Nutzung von Tags mit Attributen als Bodytags

Tag-Libraries15 Zusammenfassung weitere Möglichkeiten: –Java-Variable definieren, Wert abfragen, ändern –Kooperation von Tags über gemeinsam genutzte Objekte, z.B. bei verschachtelten Tags sehr gut geeignet, um in JSP-Anwendungen Präsentationsschicht und Logik zu trennen existieren schon viele vordefinierte Tag-Libraries –z.B. unter oder

Tag-Libraries16 Quellen Wille, S., Go To Java Server Pages, Addison- Wesley, München, 2001 Bohlen, M.: Die Jakarta Custom Tag Libraries, JavaSPEKTRUM, 3/2002, S.39 pdfhttp://java.sun.com/products/jsp/tutorial/TagLibraries. pdf