Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

PR SE Workshop "Velocity" 1 - Velocity Template Engine Doppelhammer Eva, 0159008 Oberndorfer Norbert, 0155621.

Ähnliche Präsentationen


Präsentation zum Thema: "PR SE Workshop "Velocity" 1 - Velocity Template Engine Doppelhammer Eva, 0159008 Oberndorfer Norbert, 0155621."—  Präsentation transkript:

1 PR SE Workshop "Velocity" 1 - Velocity Template Engine Doppelhammer Eva, Oberndorfer Norbert,

2 PR SE Workshop "Velocity" 2 Inhalt Was ist Velocity? Anwendungsbereich Vorteile / Nachteile Bsp: Standalone & Eingebettet (in Turbine) Velocity in Turbine Funktionsweise Syntax Beispiel

3 PR SE Workshop "Velocity" 3 Was ist Velocity?...ist eine auf Java basierende Template Engine...definiert eine einfache Sprache zur Textgenerierung …generiert beliebige Text-Dokumente (HTML, XML, usw.)...ermöglicht den Zugriff auf Java-Objekte

4 PR SE Workshop "Velocity" 4 Anwendungsbereich Standalone –Code-Generierung (z.b Java-Files, C#, C++, …) –Xml-Generierung –Beliebige Textformate Eingebettet (meist in Web-Frameworks) –Web-UI-Generierung (z.b. html, xml) –Z.b. in Turbine

5 PR SE Workshop "Velocity" 5 Vorteile / Nachteile + durch MVC: Trennung von Javacode und Internetseite (iG zu JSP / PHP)> + erhöhte Lesbarkeit + einfache Syntax, leicht erlernbar + stand-alone oder eingebettet (zB: Turbine) verwendbar + vielseitig einsetzbar (nicht nur UI-Generierung) -Open-Source: Weiterentwicklung? Dokumentation? -Nur für Java Anwendungen???

6 PR SE Workshop "Velocity" 6 Beispiel: Standalone FileWriter fw = new FileWriter(persons.csv); List persons = dbconnection.select(* from Person); Velocity.init(); VelocityContext context = new VelocityContext(); context.put(persons", persons); Template template = Velocity.getTemplate(personCSV.vm"); template.merge(context, fw); personCSV.vm Persons.csv #foreach($p in $persons) $p.FirstName ;$p.LastName #end Sepp ;Forcher Hans ;Huber Franz ;Maier Max ;Mustermann Helga ;Hofer Sonja ;Bauer

7 PR SE Workshop "Velocity" 7 Eingebettet in Turbine Die Initialisierung, Merge des Templates, Erzeugung des Context passiert automatisch durch das Turbine Framework (iG bei Standalone Einsatz (siehe Bsp.). Mit Hilfe der Velocity-Templates wird Html erzeugt. Eigene Screen/Action/Navigation-Klassen leiten von Turbine Klassen ab. (Meistens) muss die Methode doBuildTemplate(data, context) überschrieben werden. Darin erweitert man den Kontext um diejenigen Daten, die im Screen/ in der Navigation dargestellt werden sollen. Das zugehörige Template wird nach Methodenaufruf automatisch gefunden und ausgeführt. templates/screens/Index.vm doBuildTemplate(Rundata d, Context ctx) { List rdfList = RdfPeer.doSelect(…); ctx.put(entries, rdfList) } newapp.modules.screens.Index #foreach ($entry in $entries) #entryCell ($entry.Title) #entryCell ($entry.Dept) #end

8 PR SE Workshop "Velocity" 8 Velocity in Turbine Model View Controller –Torque OM Klassen> Modell –Turbine Screens und Actions> Controller –Velocity Templates> View Context ist Schnittstelle zwischen Controller und View –Action/Screen/Navigation füllt Context –Velocity Templates greifen auf den Context zu

9 PR SE Workshop "Velocity" 9 MVC schematisch Context

10 PR SE Workshop "Velocity" 10 Funktionsweise Konzept des Context ist zentral in Velocity –...fungiert als Daten-Container zwischen Systemteile –Systemteile sind Java-Layer (Programmierer) und Template-Layer (Designer) –Programmierer sammelt Objekte und stellt sie in den Context; zB.: context.put(persons, getListOfPersons(); –Designer kann nun auf diese Objekte (inkl deren Methoden und Attribute) über die Templates zugreifen –Zusammenarbeit zwischen Designer und Programmierer (Schnittstellendefinition)!!!!!

11 PR SE Workshop "Velocity" 11 Syntax Variablen deklarieren Kommentare Methoden / Eigenschaften Bedingungen / Schleifen Makros Velocity benützen

12 PR SE Workshop "Velocity" 12 Variablen Wertzuweisung –durch #set-Befehl im Template #set ($hallo = Griasti) –vom Java-Code Context Wenn Javavariable $hallo Wert hi zum Zeitpunkt der Anfrage auf das Template => Output immer hi

13 PR SE Workshop "Velocity" 13 Variablennamen Richtig $hallo $Hallo1 $baum-haus $baum_haus $c_-504 Falsch $Österreich $*Bereich $50jahre $_erledigt => muss mit Buchstaben anfangen

14 PR SE Workshop "Velocity" 14 Kommentare kurzer Kommentar –## einzeiliger Kommentar Kommentarblock –#*Kommentar über mehrere Zeilen *#

15 PR SE Workshop "Velocity" 15 Eigenschaften / Methoden Methode aufrufen –$lva.raum(), $mitarbeiter.getName(), $lva.setbesuchen([PR Software, SE IE, PROST IE]) Eigenschaft aufrufen / Kurzform Aufruf einer Methode –$lva.leiter Spezielle Fälle –Ich bin ${zahl}zehn. – –\$name

16 PR SE Workshop "Velocity" 16 Aufruf im Template Methode $lva.getLeiter() aufrufen vom Template aus mit $lva.Leiter. Velocity sucht nach: –1: $lva.getleiter –2: $lva.getLeiter

17 PR SE Workshop "Velocity" 17 Bedingungen / Schleifen IF-Bedingung #if(Bedingung1) Aktion1 #elseif(Bedingung2) Aktion 2 #else Aktion 3 #end Logische Operatoren NOT> !, AND> && OR> || For Each – Schleife #foreach (Bedingung) Aktion #end Schleifenzähler: $velocityCount

18 PR SE Workshop "Velocity" 18 Einfügen von Dateien #include (statisch.html) Datei nicht bearbeitet –direkt eingefügt –liegen in TEMPLATE_ROOT –möglich Datei über Variable einfügen #parse (personTable.vm) Datei wird bearbeitet –enthält VTL (velocity template language) –nur 1 Datei übergeben –Templates in TEMPLATE_ROOT –kann wiederum #parse- Befehle enthalten – 10 Ebenen

19 PR SE Workshop "Velocity" 19 Makros: Velocimacros Auslagerung von Scriptelementen Zeitersparnis –einmalig definiert –Wiederholungen erspart Sktruktur –#makro (testmakro) #end Aufruf im Template –#testmakro ()

20 PR SE Workshop "Velocity" 20 Makros: Velocimacros Erkennung –Referenzen, Zeichenketten, Ziffern, IntegerRange, Objektarrys, Boolean Übergibt man einem Makro als Parameter eine Methode, so wird diese bei jedem Zugriff ausgeführt #table5($counter.increase()) #macro table5($value)

21 PR SE Workshop "Velocity" 21 Eclipse: Velocity Plugin unter: Editor für.vm Dateien –Syntax Highlighting –Source Insight (auch bei eigenen Makros) –Strukturansicht Einstellungen –Windows – Preferences – VelocityUI

22 PR SE Workshop "Velocity" 22 Beispiel: Newapp Velocity User Guide guide.html guide.html

23 PR SE Workshop "Velocity" 23 Velocity Einstellungen in Turbine TurbineResources.properties # # # M O D U L E P A C K A G E S # # This is the "classpath" for Turbine. In order to locate your own # modules, you should add them to this path. For example, if you have # com.company.actions, com.company.screens, com.company.navigations, # then this setting would be "com.company,org.apache.turbine.modules". # # Default: org.apache.turbine.modules # module.packages=org.mycompany.newapp.modules,org.apache.turbine.flux.modules # # # V E L O C I T Y S E R V I C E # services.VelocityService.file.resource.loader.path = /templates/app,/templates/flux services.VelocityService.velocimacro.library = GlobalMacros.vm


Herunterladen ppt "PR SE Workshop "Velocity" 1 - Velocity Template Engine Doppelhammer Eva, 0159008 Oberndorfer Norbert, 0155621."

Ähnliche Präsentationen


Google-Anzeigen