Diskuze: Spring/JPA/Thymeleaf - Jak NEaktualizovat datum u Entity?
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Nerobím s Thymeleafom, ale s akým dátumom sa ti to prepíše?
Nerobíš niečo, čo by to mohlo prepísať ešte pred uložením alebo v nejakom setteri omylom zapisuješ do inej premennej než chceš?
Settery jsou správně a já je ručně prakticky nikde nepoužívám. Problém nastává po úpravě entity v editačním formuláři a po odeslání toho formuláře. Když si na začátku metody, která zpracovává ten formulář vypíšu ten datum tak už je změněný.
Jinak pro zobrazení stránky s formulářem používám 'ModelAndView', kde
jako 'modelObject' předávám třídu formuláře, která má jako jeden z
atributů tu danou entitu, kterou ve formuláři upravuju.
V Metodě pro zpracování formuláře mám jako parametr tu třídu formuláře
s anotací '@ModelAttribute' a pak si přez getter vezmu tu entitu z formuláře
a dál s ní pracuju.
Asi bude problém někde v tom, jak se z toto formuláře vytvoří ten objekt, kterej pak dostanu v tý metodě? Nevim jak přesně to funguje a nevim jestli to je záležitost přímo Springu nebo Thymeleafu.
Myslím si, že budu muset prostě nějak do toho formuláře dát ten datum aby si to pak vzalo z něj.
Tak problém vyřešen.
Ve formuláři musím mít normálně:
<input type="hidden" th:field="*{entita.dateCreated}">
A ve třídě entity jsem musel přidat anotaci s formátem, který odpovídá té hodnotě, která se zobrazí v tom hidden inputu (Když jsem si to zobrazil pomocí prohlížeče).
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss.SSS")
private Date dateCreated;
Teď už to funguje a při odeslání formuláře nedostávám žádný 'Validation failed'.
Zobrazeno 6 zpráv z 6.