Präsentation Velocity. Velocity Allgemein Templets Zusammenhang Templets Java Kontext $ UI $link.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Objektorientierte Programmierung
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Kapselung , toString , equals , Java API
Imperative Programmierung -Entwicklungswerkzeuge
Objektorientierte Programmierung
Java 2 Enterprise Edition (J2EE)
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
IF-ELSE-IF-Ketten Weiter mit PP..
Assoziationen (Beziehungen) 1 : n. Zu einem Auto gibt es mehrere Fahrer (2) und zu diesen 2 Fahrern gibt es genau dieses Auto.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung X1 Sitzung X1: Packages & Wiederholung.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Dynamische Webseiten Java servlets.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
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.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
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
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Thema: Fibonacci-Zahlen
Verzweigung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Einführung Servlets/JSPs
Java programmieren mit JavaKara
Wir bauen uns eine Webapplikation!
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
- Velocity Template Engine
Turbine Konzepte und Dienste
Variablenkonzept Klassisch, in Java Basistyp
Unterprogramme in JAVA
CMS-Kolloquium am 10. Januar 2006
Optimale Ursprungsgerade
Objectives Verstehen was unterDelegate verstanden wird
EPROG Tutorium #3 Philipp Effenberger
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Programmiervorkurs WS 2014/15 Methoden
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Natürliches Programmieren
Velocity Workshop SE Projekt 1 Velocity Workshop Templatesprache im Turbine-Kontext.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
A Workshop About this chapter General description Units Time Schedule
Java Programme nur ein bisschen objektorientiert.
Hello World! Javakurs 2013 Arne Kappen
 Präsentation transkript:

Präsentation Velocity

Velocity Allgemein Templets Zusammenhang Templets Java Kontext $ UI $link

Allgemein Template Engine zwei wesentliche Merkmale –strikte Trennung –Script-Sprachen-Elemente. Einsatzgebiet –Servlet basierte Webprogrammierung –Java und SQL Code Erzeugung eingesetzt, oder in der XMLVerarbeitung/Transformation

Wie funktioniert Velocity? Ein Context Objekt wird erzeugt. - Die Daten werden dem Context Objekt hinzugefügt. - Ein Template wird ausgewählt - Der Output entsteht, nachdem das Template mit den Daten zusammengeführt (merge) wurde.

Beispiel für die Trennung kleines Template mit dem Namen helloworld.vm: Hello $name! Welcome to Velocity!

Beispiel import java.io.StringWriter; import org.apache.velocity.app.VelocityEngine; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; public class HelloWorld { public static void main( String[] args ) throws Exception { VelocityEngine ve = new VelocityEngine(); ve.init(); Template t = ve.getTemplate( "helloworld.vm" ); VelocityContext context = new VelocityContext(); context.put("name", "World"); StringWriter writer = new StringWriter(); t.merge( context, writer ); System.out.println( writer.toString() ); }

Beispiel Hello World! Welcome to Velocity!

Context basiert auf einem Container der zwischen verschiedenen Layern(Schichten) Daten transferieren kann Verbindung zwischen Designer und Programmierer Benützung wie eine Hash-Tabelle

Context Anwendung (Reihenfolge spielt eine Rolle) public Object put(String key, Object value); public Object get(String key); Beispiel (key) studName den Wert (value) ia99boes context.put("studName", "ia99boes");

Properties $hello.Hello –Returniere den Wert des assoziierten Schlüssels Hello in der Hashtabelle hello. –Hello kann einen Methodenaufruf darstellen. Es gilt als Abkürzung für hello.getHello()

Parse Parse dient um weitere Templates (*.vm) einzubinden. Beispiel : Count down #set( $count = 8 ) #parse( "parseRekursion.vm" ) rekursion.vm verweist auf das parseRekursion.vm, -- > $count #set ( $count = $count – 1 ) #if ( $count > 0 ) #parse( "parseRekursion.vm" ) #else All done with parseRekursion.vm! #end

Parse Ergebnis -- > 8 -- > 7 -- > 6 -- > 5 -- > 4 -- > 3 -- > 2 -- > 1 All done with parseRekursion.vm!

Stop Mit dem #stop Element kann der Designer die Ausführung des Scripts stoppen (Fehlersuche)

$ UI Ermöglicht ein einheitliches Design –Schrift (Farbe, Typ, Größe) –Hintergrund –Bilder –Wird in einer eigenen Datei gespeichert UI Ordner.props

Im Newapp Beispiel # These are the default properties bgcolor = #E0C2C2 sansSerifFonts = verdana,geneva,helvetica formLabelColor = #b3cc99 formFieldColor = #b3dd99 labelColor = #b3cc99 dataColor = #4BDF1A vlink = #00ff00 alink = #ff00ff tableCellSpacing = 0 tableCellPadding = 0 menuColor = #4BDF1A buttonAlignment = right buttonColor = #DDDDDD tableColor = #AAAAAA # Images alertImage = alert1.gif logo = tdm.jpg poweredByImage = powered_by_tambora.gif line = line.gif darkColor = # lightColor = #DDDDDD

Variablen Die Variabeln starten immer mit einem $-Zeichen, gefolgt von einem so genannten VTLIdentifier. Dieser setzt sich aus einem alphanumerischen Zeichen (a..z oder A..Z) zusammen. Der Rest ist auf die nachfolgenden Zeichen limitiert: a..z, A..Z, 0..9, -,

Beispiel Variable setzen: #set( $variable = "bar" ) Variable reference: #set( $monkey = "bill" ) String literal: #set( $monkey.Friend = "monica" ) Property reference: #set( $monkey.Blame = $whitehouse.Leak ) Method reference: #set( $monkey.Plan = $spindoctor.weave($web) ) Number literal: #set( $monkey.Number = 123 ) Range operator: #set( $monkey.Numbers = [1..3] ) Object array: #set( $monkey.Say = ["Not", $my, "fault"] )

if - Statement Die if Bedingung ist erfüllt, sobald die übergebene Variable definiert ist, oder $unilinz ein Boolean Objekt, dessen Wert true ist, aufweist. #if ( $unilinz ) unilinz #end

Struktur des if-else Statements #if( [condition] ) [output] [ #elseif( [condition] ) [output] ]* [ #else [output] ] #end

if - else Statement Weiteres Beispiel mit einem #elseif Konstruckt: #if ( $semester <= 2 ) 2.Stock #elseif ( $semester > 2) 4.Stock #else Cafeteria od Dozent #end

Foreach Schleife Das #foreach Element erlaubt das Iterieren über eine Liste wie zum Beispiel: #foreach( $product in $allProducts ) $product #end

Hier eine Auflistung welche Collections von #foreach unterstützt werden: - Object[] - java.util.Collection - java.util.Map - java.util.Iterator - java.util.Enumeration

Global Macros.vm Definiert für das gesamte Framework, den Aufbau, Farbe,... verschiedenster Macros (z.B listBox....) Dadurch überall verwendbar

$link Siehe Beispiel: menueName