Cílem je vytvořit webovou stránku pro zobrazení vizitek. Úvodní stránka bude zobrazovat seznam všech vizitek, z každé vizitky bude možné se prokliknout na její detail, kde bude spolu s vizitkou zobrazena také mapa.
Projekt obsahuje kontroler a příslušné HTML stránky (už v adresáři src/main/resources/templates
). Na stránce jsou ale jen pevně vložené texty. Je potřeba
upravit kontroler tak, aby poskytoval do modelu data, a upravit šablony tak, aby data z modelu zobrazovaly.
Počítej s tím, že jméno a firma budou vždy uvedené, stejně jako dva řádky adresy. Kontakty (e-mail, telefon a web) ale mohou a nemusí být vyplněné – může být vyplněn například jenom e-mail, nebo třeba jen telefon a web.
- Udělej fork zdrojového repository do svého účtu na GitHubu.
- Naklonuj si repository ze svého účtu na GitHubu na lokální počítač.
- Spusť si naklonovanou aplikaci a otevři v prohlížeči stránku http://localhost:8080/. Zobrazí se stránka se čtyřmi vizitkami. Kliknutím na kteroukoli vizitku se zobrazí příklad s detailem jedné vizitky – je v něm pouze jedna vizitka spolu s mapou zobrazující adresu uvedenou na vizitce.
- Vytvoř si entitu např.
Vizitka
, která bude obsahovat následující properties – údaje zobrazené na vizitce:jmeno
firma
ulice
obecPsc
celaAdresa
(readonly property, ve tvaru „ulice
,obecPsc
“)email
telefon
web
- Vytvoř v této entitě bezparametrický konstruktor a konstruktor obsahující všechny properties s uloženo uhodnotou (tj. bez počítané property
celaAdresa
). - Vytvoř si v kontroleru
VizitkaController
privátní field, který bude obsahovat seznam vizitek (List<Vizitka>
) a naplň seznam nějakými údaji. Nezapomeň vytvořit i takové vizitky, které nebudou mít uvedené všechny kontakty. - Uprav metodu
seznam()
tak, aby vracelaModelAndView
. Zvol správné view a do modelu vlož seznam vizitek. - Uprav šablonu
seznam.html
tak, aby zobrazovala vizitky z modelu. Každá vizitka musí odkazovat na svou stránku s detailem. - Uprav metodu
detail()
tak, aby vracelaModelAndView
. Uprav metodu tak, aby z požadavku prohlížeče načítala query parametrid
. Zvol správné view a do modelu vlož vizitku získanou ze seznamu na základěid
(indexu v seznamu). - Uprav šablonu
detail.html
tak, aby zobrazovala vizitku z modelu. - Pro zobrazení mapy použij připravený kód s tagem
iframe
, který vkládá vloženou mapu Mapy.cz. Jako parametrq
se do URL předává adresa, která se má na mapě zobrazit. Tuto adresu je potřeba zakódovat pomocí built-in funkce Freemarkeruurl
. Místo statického stringu s adresou Czechitas na Václavském náměstí tedy předej propertycelaAdresa
(pozor na to, že už nyní je statický string vložený v interpolaci${…}
, tu už tedy do šablony nepřidáváš). - Zkontroluj výsledek v prohlížeči.
- Commitni a pushnni změny (výsledný kód) do svého repository na GitHubu.
- Vlož odkaz na své repository jako řešení úkolu na portálu Moje Czechitas.
- odkaz na stránku Lekce 4
- Java SE 21 Javadoc – dokumentace všech tříd, které jsou součástí základní Javy ve verzi 21.
- Dokumentace Spring Boot – odsud je anotace
@SpringBootApplication
a třídaSpringApplication
. - Dokumentace Spring Framework – odsud jsou anotace
@Controller
,@GetRequest
a třídaModelAndView
. - Dokumentace Freemarker – šablonovací systém pro HTML použitý v projektu.
- Unsplash – obrázky a fotografie k použití zdarma
- LineAwesome – sada ikon pro použití na webu