Zatím jsme jen zobrazovali data, dnes je konečně začneme také upravovat. Použijeme k tomu HTML formuláře.
- Použij toto repository jako šablonu (Use this template), ze které si vytvoříš repository ve svém účtu na GitHubu.
- Naklonuj si repository ze svého účtu na GitHubu na lokální počítač.
- Z
div
u pod nadpisem Append new person udělej formulář (tagform
). Třídy zůstanou stejné, formulář bude mít akci/
a metoda budepost
. - Vytvoř v controlleru metodu
append
. Metoda bude mapována na metoduPOST
a jako parametr bude přijímat entituPerson
. - V metodě controlleru
append
použij metoduappend
ze službyservice
pro přidání nové osoby do seznamu osob. - Na konci controlleru proveď přesměrování zpět na úvodní stránku aplikace (POST-redirect-GET), aby se zobrazil seznam osob. Seznam se zobrazí už s nově přidanou osobou.
- Uprav stránku s detailem tak, že kolem prvků
input
vytvoříte formulář (můžete zdiv
u udělatform
. Třídy zůstanou stejné, formulář bude mít akci/{id}
a metoda budepost
. Za{id}
je potřeba dosadit identifikátor konkrétního záznamu. - Vytvoř v controlleru metodu
edit
. Metoda bude mapována na metoduPOST
a jako parametr bude přijímat entituPerson
a také@PathVariable
id
(která přijde v URL). - Ve službě
FamousPeopleService
přidej metoduedit
, která jako parametr dostaneid
záznamu (index v seznamu) a entituPerson
. Metoda uloží danou osobu na zadaný index v seznamu (tj. přepíše konkrétní záznam). - V metodě controlleru
edit
zavolej metoduedit
ze služby a předej jí správné parametry. - Na konci metody controlleru
edit
proveď přesměrování zpět na úvodní stránku aplikace (POST-redirect-GET), aby se zobrazil seznam osob. Seznam se zobrazí s upravenou osobou. - Uprav stránku se seznamem osob tak, že kolem tlačítka pro smazání záznamu vytvoříš formulář. Tento formulář nebude vidět, bude v něm ale
input
typuhidden
, ve kterém bude uloženéid
záznamu, který chceme smazat. - Formulář se bude odesílat metodou
post
na adresu/delete
. - Implementuj metodu controlleru pro metodu
POST
napojenou na adresu/delete
, jako parametr bude očekávat číselný identifikátor záznamu, který se má smazat. - V metodě controlleru použij metodu
FamousPeopleService.deletById
, která už je ve službě implementovaná. - Na konci metody controlleru opět proveď přesměrování zpět na úvodní stránku aplikace (POST-redirect-GET), aby se zobrazil seznam osob. Seznam se zobrazí už bez smazané osoby.