<FreeMarker> Łukasz Monkiewicz.

Slides:



Advertisements
Podobne prezentacje
Introduction to SystemC
Advertisements

Programowanie Wizualne WYKŁAD 5
Analiza wywołania i przebiegu przerwań w systemie Linux
C++ w Objectivity Marcin Michalak s1744. Pomocne pakiety: Data Definition Language (DDL). Standard Template Library (STL). Active Schema.
Bazy danych 8. SQL podstawy P. F. Góra semestr letni 2004/05.
Sposoby implementacji asocjacji
Implementacja ekstensji klasy
Projekt przygotowany przez uczniów:
Java vs C# Michał Prządka Tomasz Nowak
STL - Standard Template Library Autor: Błażej Chodarcewicz rainbow.mimuw.edu.pl/~bc189380/STL/
Bazy danych II Instrukcja INSERT Piotr Górczyński 25/08/2001.
GUI Struktury Spotkanie integracyjne Nazwa wydziału: EAIiE Nazwa katedry: Informatyka Miejsce i data prezentacji: Kraków,
BIRT.
Team Building Copyright, 2003 © Jerzy R. Nawrocki Requirements Engineering Lecture.
SQL select kredytobiorca,bank, rodzaj, data_zawarcia, klasyfikacja,kwota, terminzapadalnosci-data_zawarcia iledni from tab_kredyt where (terminzapadalnosci-data_zawarcia)>1095.
Testowanie oprogramowania metodą badania pokrycia kodu
Podstawy programowania
142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
„Tworzenie aplikacji sieciowych w języku Java”
Hibernate relacje.
MS SQL SERVER udział w rynku. Source: Gartner Dataquest (May 2006) Company Market Share (%) Market Share (%) Growth (%) Oracle6, ,
Techniki i języki programowania
DIALOGUE Receptionist: Hello, Oxford Football Club. Adam: I want to join the club, please. R: Whats your …………………………………? A: Adam. R: And whats your ……………………….…….?
Podstawy C# Grupa .NET PO.
Avaya IP Office - Wersja 8
Monika Rokosik Katarzyna Rola. Wykrywanie kursu akcji poniżej dołka znajdującego się pomiędzy dwoma sąsiednimi górkami, z których późniejsza jest mniejsza.
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
PRZELICZNIK DŁUGOŚCI w programie NetBeans IDE autorzy: Michał Mrozek i Marcin Mrugała 2012.
Krzysztof Manuszewski
Theory of Computer Science - Basic information
Damian Wojdan Kraków,
Przygotował: Paweł Ziaja
Click to show the screen.
db4o Kacper Skory Marcin Talarek
Window title Powiązania Firmy Osoby Imię: Nazwisko: Źródła: KtoKogo
Seminarium problemowe
„Imię to słowna forma cienia To coś, co w słońcu, czy też w bidzie
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
PIO. Autor -Zofia Kruczkiewicz1 Wykład 1-część druga Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowania (część biznesowa aplikacji) iteracyjno-rozwojowy.
PIO. Autor -Zofia Kruczkiewicz1 Wykład 1-część druga Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowania (część biznesowa aplikacji) iteracyjno-rozwojowy.
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
The Grumpy Test If at least one of these pictures does not make you smile, then you are grumpy and need to go back to bed. Test na ponuraka Jak nie usmiechniesz.
Podstawy licencjonowania Exchange, SharePoint oraz Lync.
Automatyczne wyznaczanie złożoności obliczeniowej algorytmów
Koło emocji wg Plutchika (1980)
Cz.8 Zdarzenia. Refleksja – przypomnienie Event Programowanie zdarzeniowe Do dzieła!
Marek Krupa Coś o mnie.
Powrót do sukcesu Analiza przypadku Princessy (rola badań marketingowych podczas rozwoju produktu: ) Powrót do sukcesu Analiza przypadku Princessy.
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
Warsztaty C# Część 3 Grzegorz Piotrowski Grupa.NET PO
Sieci komputerowe. Nowe technologie komputerowe
Procedura Jak postępować z klientem po konwersji Profile 5.1 Następny.
Podstawy budowania sieci IP
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Rozdział 3: Bezpieczeństwo w sieci opartej na systemie Windows 2000.
Cataloguing, retrieving and translating scholarly texts in English Semestr letni 2013/2014 Dr Monika Krakowska.
Cracow University of Technology Faculty of Mechanical Engineering Internships programmes at CERN Seminar Piotr Dziurdzia.
1.
OCPJP Inner classes.
Piotr Czapiewski Wydział Informatyki ZUT.  Extensible Markup Language  Język znaczników  Human-readable and machine-readable  Niezależny od platformy.
BVMS 3.0 Moduł 13: Opcje zapisu iSCSI
A. When we celebrate? Celebrating the European Day of Languages ​​ on September 26 since We celebrate it in 47 countries.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Responsywne aplikacje w Windows 8 i.NET 4.5 Jakub Binkowski.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 5.
DOM Ewa Dukała Piotr Muszyński. DOM DocumentBuilder Factory Document Builder XML Data object obiectobject DocumentDOM.
Kalendarz 2020.
Komendy SQL do pracy z danymi
Implementacja asocjacji (z atrybutami i bez) przy użyciu: referencji (kolekcji referencji) tablic asocjacyjnych przygotował: Kamil Kowalczyk.
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Zapis prezentacji:

<FreeMarker> Łukasz Monkiewicz

Plan prezentacji Co to jest FreeMarker ? Jak to działa ? Szablony Przykład Podsumowanie

Co to jest FreeMarker ? FreeMarker jest biblioteką Javy, która pozwala na generowanie wszelkiego rodzaju tekstowych danych na podstawie wczesniej zdefiniowanych szablonów.

Jak to działa ?

Szablony <#-- user = "Użytkownik" --> ${user[0]}${user[4]} <#-- Uk --> ${user[1..4]} <#-- żytk --> <#-- x = 5 --> ${x * x - 100} <#-- -75 --> ${x / 2} <#-- 2.5 --> ${12 % 10} <#-- 2 --> ${1.1?int} <#-- 1 --> <#-- test = "Tom & Jerry" --> ${test?html} <#-- Tom & Jerry --> ${test?upper_case?html} <#-- TOM & JERRY --> ${repeat("What", 3)} <#-- WhatWhatWhat -->

Szablony <#if condition> ... <#elseif condition2> <#switch value> <#case refValue1> ... <#break> <#case refValue2> <#case refValueN> <#default> </#switch> <#list sequence as item> ... </#list>

Szablony <#macro test foo bar="Bar" baaz=-1> Test text, and the params: ${foo}, ${bar}, ${baaz} </#macro> <@test foo="a" bar="b" baaz=5*5-2/> <@test foo="a" bar="b"/> <@test foo="a" baaz=5*5-2/> <@test foo="a"/> Test text, and the params: a, b, 23 Test text, and the params: a, b, -1 Test text, and the params: a, Bar, 23 Test text, and the params: a, Bar, -1

Przykład - dane public class User { private String name; private String lastname; private int age; public User(String name, String lastname, int age){ setName(name); setLastname(lastname); setAge(age); } // get... // set...

Przykład - dane Configuration cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(new File("template")); cfg.setObjectWrapper(new DefaultObjectWrapper()); Map lang = new HashMap(); lang.put("name", "Imię"); lang.put("lastname", "Nazwisko"); lang.put("age", "Wiek"); lang.put("userList","Lista użytkowników"); lang.put("date", "Data"); List users = new ArrayList(); users.add(new User("Jan", "Kowalski", 25)); users.add(new User("Anna", "Nowak", 27)); users.add(new User("Stefan", "Jakiśtam", 30)); Map root = new HashMap(); root.put("lang",lang); root.put("users",users); root.put("date",new Date()); Template temp = cfg.getTemplate("userlist.ftl"); Writer out = new OutputStreamWriter(System.out); temp.process(root, out); out.flush();

Przykład - szablon ################################## ${lang.userList} ${lang.date}: ${date?string("dd-MM-yyyy HH:mm:ss")} <#assign counter = 1 /> <#list users as user> ${counter}. ${lang.name}: ${user.name} ${lang.lastname}: ${user.lastname} ${lang.age}: ${user.age} ---------------------------------- <#assign counter = counter +1 /> </#list>

Przykład - wynik ################################## Lista użytkowników Data: 29-11-2005 17:23:00 1. Imię: Jan Nazwisko: Kowalski Wiek: 25 ---------------------------------- 2. Imię: Anna Nazwisko: Nowak Wiek: 27 3. Imię: Stefan Nazwisko: Jakiśtam Wiek: 30

Podsumowanie Prostota użycia Duże możliwości Możliwość użycia w dowolnej aplikacji Dostępny plugin do wielu IDE Więcej informacji: http://freemarker.sourceforge.net