Velocity Workshop SE Projekt 1 Velocity Workshop Templatesprache im Turbine-Kontext.

Slides:



Advertisements
Ähnliche Präsentationen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Advertisements

PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Java 2 Enterprise Edition (J2EE)
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Scratch Der Einstieg in das Programmieren. Scatch: Entwicklungsumgebung Prof. Dr. Haftendorn, Leuphana Universität Lüneburg,
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
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.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Differentieller Stromverstärker
Schieferdeckarten Dach.ppt
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Einführung in die Programmierung Datensammlung
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Uwe Habermann Venelina Jordanova VFP Code in Silverlight Anwendungen ausführen.
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Einführung Servlets/JSPs
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
Wir bauen uns eine Webapplikation!
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.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
Präsentation Velocity. Velocity Allgemein Templets Zusammenhang Templets Java Kontext $ UI $link.
- Velocity Template Engine
Turbine Konzepte und Dienste
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
CMS-Kolloquium am 10. Januar 2006
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES KULTURELLER ZUSAMMENHALT UND AUSDEHNUNG DER IDEEN AUF EUROPÄISCHEM.
Das IT - Informationssystem
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Einführung in PHP.
Einführung in PHP 5.
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
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.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Pigmentierte Läsionen der Haut
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Bildergalerie PRESEASON CAMP Juni 2014 Romanshorn Get ready for the Season!
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Das IT - Informationssystem
TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
TypoScript.
(Syntax, Strings/Zahlen, Variablen, Arrays)
Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine.
 Präsentation transkript:

Velocity Workshop SE Projekt 1 Velocity Workshop Templatesprache im Turbine-Kontext

Velocity Workshop SE Projekt 2 Was ist Velocity? Java-basierte Template-Engine Verwendung für –Code-Generierung – -Templating –Web-UI-Erzeugung Im Zusammenspiel mit Turbine: Fokus auf Web-UI-Erzeugung

Velocity Workshop SE Projekt 3 Wie funktioniert Templating? Velocity

Velocity Workshop SE Projekt 4 Modell-View-Controller Velocity

Velocity Workshop SE Projekt 5 Vorteile des Templating Trennung von Content / Layout dadurch Trennung von Programmierer / Designer Referenzierung von Methoden, die in Java geschrieben sind (Velocity)

Velocity Workshop SE Projekt 6 Velocity und Turbine Velocity verwendet Referenzen aus dem Turbine-Context Velocity repräsentiert den View-Teil Turbine repräsentiert den Modell & Controller-Teil

Velocity Workshop SE Projekt 7 Seitenaufbau Führt evt. notwendige Actions aus. Physikalische Struktur der zu erzeugenden Web-Site Stellt den eigentlichen Körper der Web-Site dar. Verantwortlich für Benutzerinteraktion und Datenanzeige.

Velocity Workshop SE Projekt 8 Aufrufreihenfolge Aufruf mit

Velocity Workshop SE Projekt 9 Sprachkonzepte

Velocity Workshop SE Projekt 10 Velocity Template Language (VTL) Kommentare Variablen/Methoden Wichtige Befehle

Velocity Workshop SE Projekt 11 Kommentare Kommentarzeile ## Das ist ein Kommentar! Kommentarblock #* Das ist ein Kommentarblock! *#

Velocity Workshop SE Projekt 12 Variablen Notation: $ [ ! ][ { ][ a..z, A..Z ][ a..z, A..Z, 0..9, -, _ ][ } ] Beispiele: –$count-x –$!count-x –${count-x} –\$count-x

Velocity Workshop SE Projekt 13 Methoden Aufruf einer Methode $kunde.getKundennr() Kurze Schreibweise bei get/set Methoden $kunde.Kundennr

Velocity Workshop SE Projekt 14 Wichtige Befehle #set #if #foreach #stop #include #parse #macro

Velocity Workshop SE Projekt 15 #set (1) Notation: #set( $ref = [",‘]arg[",‘] ) Beispiele: #set( $name = "Markus„ ) #set( $test.Feld = ["E1","E2"] ) #set( $test.Feld2 = [1..10]) #set( $test.Map = {"schlüssel1":"wert1","s2":"w2"} ) (ab Velocity v1.4)

Velocity Workshop SE Projekt 16 #set (2) Ist der rechte Ausdruck einer #set Anweisung leer, wird NICHT null zugewiesen!! Text zwischen einfachen Anführungszeichen wird NICHT geparsed! Kann in der Datei velocity.properties umgestellt werden.

Velocity Workshop SE Projekt 17 #if #if ( $Name == "Franz" || $Name == "Huber" ) Huber Franz #elseif unbekannt #end Logische Operatoren NOT -> ! AND -> && OR -> ||

Velocity Workshop SE Projekt 18 #foreach #foreach( $product in $allProducts ) $product #end Verfügbarer Schleifenzähler $velocityCount Beginnt standardmäßig bei 1, dies kann jedoch in der Datei velocity.properties auf 0 geändert werden.

Velocity Workshop SE Projekt 19 #stop Beendet die Übersetzung eines Velocity Templates Dies kann beim Debuggen sinnvoll sein.

Velocity Workshop SE Projekt 20 #include Notation: #include( arg[, arg2, … argn] ) Beispiel: #include ( "lieferantenliste.txt", $kundenliste ) Die eingefügten Dateien werden NICHT übersetzt.

Velocity Workshop SE Projekt 21 #parse Notation: #parse( arg ) Beispiel: #parse ( "kundenausgabe.vm") Die eingefügten Dateien werden übersetzt. Es kann nur eine Datei auf einmal eingefügt werden!

Velocity Workshop SE Projekt 22 #macro (1) Notation: #macro( vmname $arg1 [ $arg2 $arg3... $argn ] ) [ VM VTL code... ] #end Beispiel #macro ( listenausgabe $liste ) #foreach $elem in $liste $elem #end

Velocity Workshop SE Projekt 23 #macro (2) Anwendung #set ( $liste = [‘‘Zeile 1",‘‘Zeile 2"] ) #listenausgabe ( $liste ) Übergibt man einem Makro als Parameter eine Methode, so wird diese bei jedem Zugriff ausgeführt.

Velocity Workshop SE Projekt 24 Velocity im Turbine Context

Velocity Workshop SE Projekt 25 Velocity und Turbine Context Verknüpfung zwischen Javacode und Template Verwaltung in einer Hashtable Objekte: –RunData –TemplateLink –TemplatePageAttributes Manuelles Hinzufügen von Objekten möglich

Velocity Workshop SE Projekt 26 Verwendung RunData (1) Referenzierung im Velocity mit $data Alle public Methoden des Objekts verfügbar Sehr große Anzahl an Methoden  Gesamtliste unter Turbine Javadocs Nachfolgend einige wichtige aufgezählt

Velocity Workshop SE Projekt 27 Verwendung RunData (2) getMessage() addMessage(String msg) getTitle() getUser() getServerName() setRedirectUri(String ruri) getTemplateInfo()

Velocity Workshop SE Projekt 28 Verwendung TemplateLink (1) Referenzierung im Velocity mit $link Klasse TemplateLink eine Erweiterung der Klasse DynamicURI Verwendung: Erzeugung von URIs Bspw. Zu einem anderen Template: $link.setPage(„newpage.vm“)

Velocity Workshop SE Projekt 29 Verwendung TemplateLink (2) setPage(String templatename) addPathInfo(String name, String value) addQueryData(String name, String value) getScriptName() getServerData() setAction(String action) setScreen(String screen) setSecure()

Velocity Workshop SE Projekt 30 Verwendung TemplatePageAttributes (1) Referenzierung im Velocity mit $page Damit können bestimmte HTML – Eigenschaften gesetzt werden –Hintergrundfarbe –Titel –Textfarbe –Usw.

Velocity Workshop SE Projekt 31 Verwendung TemplatePageAttributes (2) addAttribute(String name, String value) getTitle() setBackground(String url) setBgColor(String color) setTextColor(String color) setKeywords(String description) setLinkColor(String color)

Velocity Workshop SE Projekt 32 Eigene Objekte im Turbine Context (1) Context wird mit Hashtable verwaltet Objekte beliebigen Typs können hinzugefügt werden Danach alle public Methoden des Objekts im Template (Velocity) verfügbar Hinzufügen von Objekten mit dem Wert NULL  NullPointerException

Velocity Workshop SE Projekt 33 Eigene Objekte im Turbine Context (2) Beispiel String-Objekt Im Javacode: –context.put(„hello“,new String(„testing“)) Im Template: –$hello the hello reference Ergibt als Output: –testing the hello reference

Velocity Workshop SE Projekt 34 Actions

Velocity Workshop SE Projekt 35 Actions Aufruf mit HelloWorld.vm/action/UpdateWorld HelloWorld.vm/action/UpdateWorld_MethodName Ruft das Template HelloWorld.vm auf Vorher wird die VelocityAction UpdateWorld ausgeführt

Velocity Workshop SE Projekt 36 Velocity Einstellungen

Velocity Workshop SE Projekt 37 Konfiguration richtige Ordnerstruktur Einstellungen in der TurbineRessources.properties

Velocity Workshop SE Projekt 38 Turbine Ordnerstruktur

Velocity Workshop SE Projekt 39 templates Ordner Enthält alle Velocity Templates (.vm) app - GlobalMacros.vm layouts - übergeordnete Layout navigation – Navigationselemente screens – eigentlichen Inhalte

Velocity Workshop SE Projekt 40 src Ordner spiegelt Struktur im class Ordner wieder modules – zu *.vm zugehöriger Java Code screens – eigentliche Inhaltssteuerung actions – spezielle Aktionen

Velocity Workshop SE Projekt 41 Einstellungen unter WEB-INF\conf\ in der (Text-)Datei TurbineRessources.properties

Velocity Workshop SE Projekt 42 Einstellungen 1/2 F R A M E W O R K S E T T I N G S template.homepage=Index.vm template.login=Login.vm template.error=Error.vm T E M P L A T E S E R V I C E services.TemplateService.layout.cache.size=2 services.TemplateService.navigation.cache.size=10 services.TemplateService.screen.cache.size=50

Velocity Workshop SE Projekt 43 Einstellungen 2/2 V E L O C I T Y S E R V I C E services.VelocityService.default.layout.template = Default.vm services.VelocityService.velocimacro.library = GlobalMacros.vm services.VelocityService.file.resource.loader.path = /templates/app C A C H I N G services.VelocityService.file.resource.loader.cache = false services.VelocityService.file.resource.loader.modification CheckInterval = 2 services.VelocityService.velocimacro.library.autoreload = true

Velocity Workshop SE Projekt 44 Eclipse: Velocity Plugin unter: Unterstützt beim Bearbeiten von.vm Dateien –Syntax Highlighting –Source Insight (auch bei eigenen Makros) –Strukturansicht –...