Lekce 4
Repository použité při lekci
Postup stažení: nejprve si repository forkni z mého repository do svého (tlačítko Fork vpravo nahoře). Následně naklonuješ repository do svého počítače. Pokud máš v prohlížeči nainstalovaný doplněk JetBrains Toolbox, stačí na GitHubu kliknout na tlačítko Clone in IntelliJ IDEA a pokračovat dle pokynů.
Pokud doplněk nemáš, na úvodní obrazovce IntelliJ IDEA zvol tlačítko Get from VCS, následně v nabídce vlevo zvol GitHub a v přehledu projektů vyber projekt, který chceš klonovat.
Osnova
- seznamy
th:each
- podmínky
th:if
- odkazy
@{…}
- enumy
- předávání paramterů do controlleru
Tahák
Thymeleaf šablony
<html lang="cs" xmlns:th="http://www.thymeleaf.org">
– hlavička HTML souboru, který funguje jako Thymeleaf šablona;lang="cs"
říká, že obsah stránky je v češtině (prohlížeč pak např. nebude nabízet přeložení stránky z angličtiny)${variable}
– získání dat z modelu@{/odkaz}
– vytvoření internetového odkazu@{/odkaz(param1=${value1}, param2=${value2}}
– vytvoření internetového odkazu s parametry
<span th:text="${variable}">…</span>
– vložení textu do obsahu HTML elementu<span th:utext="${variable}">…</span>
– vložení HTML kódu do obsahu HTML elementu
<span th:if="${variable} == 'value'">…</span>
– celý HTML element je vložen jenom v případě, kdy podmínka je splněna<span th:unless="${variable} == 'value'">…</span>
– celý HTML element je vložen jenom v případě, kdy podmínka není splněna
<div th:each="item : ${list}">…</div>
– celý HTML element je opakován pro každou položku seznamulist
, v rámci opakování existuje proměnnáitem
s aktuální hodnotou ze seznamu<div th:each="item, iterStat : ${list}">…</div>
– jako předchozí, ale v proměnnéiterStat
jsou navíc informace o procházení seznamu, jsou to:index
– pořadí aktuálního prvku, začíná 0count
– pořadí aktuálního prvku, začíná 1size
– počet prvků v seznamucurrent
– aktuální prvek seznamu (item == iterStar.current
)- logické proměnné
even
,odd
,first
alast
${#temporals.format(dateOrTime)}
– formátování data, času nebo časové značky (datum+čas) dle výchozího nastavení${#temporals.format(dateOrTime, 'd. M. yyyy H:mm')}
– formátování data, času nebo časové značky (datum+čas) dle určeného formátu
Spring
@Controller
– třída s metodami, které obsluhují požadavky klienta@SpringBootApplication
– označení výchozí třídy Spring Boot aplikace. Spring Boot následně prohledává package, ve kterém je umístěna tato třída, a všechny package pod ním (na libovolné úrovni zanoření) a zpracuje všechny třídy označené některou z anotací, které Spring zná – např.@Controller
,@Service
,@Repositoy
apod.@GetMapping
,@PostMapping
a další,@RequestMapping
– anotace označující celý kontroler nebo metodu a určující, jaké požadavky bude zpracovávat (např. cesta, metoda, typ dat požadavku nebo odpovědi)ModelAndView
– přepravka, která obsahuje název view a data modelu
Java
enum
– speciální třída obsahující výčet konstant (např. seznam světových strany nebo ročních období)
Odkazy
- Java SE 11 Javadoc – dokumentace všech tříd, které jsou součástí základní Javy ve verzi 11.
- Dokumentace Spring Boot – odsud je anotace
@SpringBootApplication
a třídaSpringApplication
. - Dokumentace Spring Framework – odsud jsou anotace
@Controller
,@GetRequest
a třídaModelAndView
. - Dokumentace Thymeleaf – š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
Video z lekce
Úkol
Zadání úkolu: Úkol 3