Lekce 6
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
- další formulářové prvky – výběry, logické hodnoty
- validace
- logika v metodě controlleru
Tahák
Freemarker šablony
- Záhlaví souboru
[ftl] - Výpis dat z modelu
${…} - Test, jestli hodnota v modelu existuje:
model??nebomodel.property?? - Nahrazení výchozí hodnotou, když hodnota neexistuje:
model?"default"nebomodel.property?"default" - Podmínka
-
[#if condition] … [/#if] -
[#if condition] … [#else] … [/#if] -
[#if condition] … [#elseif condition] … [/#if] -
[#if condition] … [#elseif condition] … [#else] … [/#if]
-
- Cyklus/sekvence
-
[#list sequence as item] … [/#list] -
[#list sequence as item] … [#else] … [/#list] -
[#list sequence] … [#items as item] … [/#items] … [#else] … [/#list] item?indexitem?counteritem?has_nextitem?item_parity
-
- Vkládání komponent a jiných souborů
[#include 'cesta'][#import 'cesta' as name]
HTML formuláře
- formulář:
<form action="/path" method="get">…</form>methodmůže býtgetnebopost
- vstupní pole:
<input type="" id="" name="" value="" />- text
- password
- number
- date
- hidden
- checkbox
- radio
- … a další
- výběr:
html <select id="" name=""> <option value="">Text</option> </select> - popisek:
<label for="">Text</label>– hodnotaforse musí shodovoat s hodnotouidve vstupním poli nebo selectu, na kterélabelukazuje
Spring
@Controller– třída s metodami, které obsluhují požadavky klienta@RequestMapping– může se použít na třídě controlleru pro označení prefixu cesty, který je společný pro všechny metody controlleru@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,@Repositoyapod.@GetMapping,@PostMappinga 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)@PathVariable– označuje parametr metody controlleru, který má být naplněn údajem z cestyModelAndView– 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í)EnumSet– kolekce, speciální typSetu, který obsahuje hodnoty enumu
Odkazy
- Java SE 17 Javadoc – dokumentace všech tříd, které jsou součástí základní Javy ve verzi 11.
- Dokumentace Spring Boot – odsud je anotace
@SpringBootApplicationa třídaSpringApplication. - Dokumentace Spring Framework – odsud jsou anotace
@Controller,@GetRequesta třídaModelAndView. - Dokumentace Freemarker – šablonovací systém pro HTML použitý v projektu.
- Dokumentace HTML formulářů
- Dokumentace Hibernate Validator
Úkol
Zadání úkolu: Úkol 5