Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Velocity Workshop SE Projekt 1 Velocity Workshop Templatesprache im Turbine-Kontext."—  Präsentation transkript:

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

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

3 Velocity Workshop SE Projekt 3 Wie funktioniert Templating? Velocity

4 Velocity Workshop SE Projekt 4 Modell-View-Controller Velocity

5 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)

6 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

7 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.

8 Velocity Workshop SE Projekt 8 Aufrufreihenfolge Aufruf mit http://..../HelloWorld.vm

9 Velocity Workshop SE Projekt 9 Sprachkonzepte

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

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

12 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

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

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

15 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)

16 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.

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

18 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.

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

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

21 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!

22 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

23 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.

24 Velocity Workshop SE Projekt 24 Velocity im Turbine Context

25 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

26 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

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

28 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“)

29 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()

30 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.

31 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)

32 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

33 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

34 Velocity Workshop SE Projekt 34 Actions

35 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

36 Velocity Workshop SE Projekt 36 Velocity Einstellungen

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

38 Velocity Workshop SE Projekt 38 Turbine Ordnerstruktur

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

40 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

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

42 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

43 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

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


Herunterladen ppt "Velocity Workshop SE Projekt 1 Velocity Workshop Templatesprache im Turbine-Kontext."

Ähnliche Präsentationen


Google-Anzeigen