Używanie ukrytych danych wejściowych w przypadku wiosny i grasicy

1. Wstęp

Thymeleaf to jeden z najpopularniejszych silników szablonów w ekosystemie Java. Pozwala nam łatwo wykorzystywać dane z naszych aplikacji Java do tworzenia dynamicznych stron HTML.

W tym samouczku przyjrzymy się kilku sposobom wykorzystania ukrytych danych wejściowych w Spring i Thymeleaf.

2. Thymeleaf z formularzami HTML

Zanim przyjrzymy się pracy z ukrytymi polami, cofnijmy się o krok i przyjrzyjmy się, jak Thymeleaf działa ogólnie z formularzami HTML.

Najczęstszym przypadkiem użycia jest użycie formularza HTML, który jest mapowany bezpośrednio na DTO w naszej aplikacji .

Na przykład załóżmy, że piszemy aplikację blogową i mamy DTO, które reprezentuje pojedynczy post na blogu:

class BlogDTO { long id; String title; String body; String category; String author; Date publishedDate; }

Możemy użyć formularza HTML, aby utworzyć nową instancję tego DTO przy użyciu Thymeleaf i Java:

Zwróć uwagę, że pola w naszym wpisie na blogu DTO są mapowane na pojedyncze dane wejściowe w formularzu HTML. W większości przypadków działa to dobrze, ale jakich pól nie można edytować? Tutaj mogą pomóc ukryte dane wejściowe.

Na przykład każdy post na blogu ma unikalne pole identyfikatora, którego użytkownicy nie powinni mieć możliwości edycji. Korzystając z ukrytych danych wejściowych, możemy przekazać pole ID do formularza HTML bez umożliwienia jego wyświetlania lub edytowania .

3. Korzystanie z th: field Attribute

Najszybszym sposobem przypisania wartości do ukrytego wejścia jest użycie atrybutu th: field :

To najprostszy sposób, ponieważ nie musimy określać atrybutu value, ale może nie być obsługiwany w starszych wersjach Thymeleaf .

4. Korzystanie z atrybutu th: attr

Następnym sposobem, w jaki możemy użyć ukrytych danych wejściowych z Thymeleaf, jest użycie wbudowanego atrybutu th: attr :

W tym przypadku musimy odwołać się do pola id za pomocą obiektu blogu .

5. Używając nazwy Attribute

Innym mniej szczegółowym podejściem jest użycie standardowego atrybutu nazwy HTML :

Opiera się wyłącznie na standardowych atrybutach HTML. W tym przypadku musimy również odwołać się do pola id za pomocą obiektu blogu .

6. Wniosek

W tym samouczku przyjrzeliśmy się kilku sposobom wykorzystania ukrytych danych wejściowych w Thymeleaf. Jest to przydatna technika przekazywania pól tylko do odczytu z naszych DTO do formularzy HTML.

Jak zawsze, wszystkie przykłady kodu użyte w tym samouczku można znaleźć na Github.