[JAVA] Utilisation du type caché lors du PUT avec Thymeleaf

Lorsque PUT avec Thymeleaf, PUT n'est pas simplement spécifié dans l'action de la méthode form.

Contexte de l'enquête

Je l'ai implémenté pour qu'il puisse être PUT, mais quand je regardais la méthode de demande dans la console développeur de chrome, il s'est avéré être POST? Parce que c'est devenu. ..

image.png

En regardant à partir des données, il est mis. image.png

Découvrez comment la source Thymeleaf est déployée

Si vous regardez la source, vous pouvez voir que put est réalisé en utilisant le type hidden après avoir spécifié post pour l'action de la balise form. ・ Qu'est-ce que le type caché? https://developer.mozilla.org/ja/docs/Web/HTML/Element/Input/hidden Il est utilisé lorsque vous souhaitez envoyer une valeur sans l'afficher sur le formulaire.

--Code à feuilles de thym

sample.html


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
  <head>
    <meta http-equiv='Content-type' content='text/html; charset=utf-8' />
    <title>test</title>
  </head>
  <body>
<!--Faites attention ici-->
    <form th:action="@{/user}" th:method="put">
      <input class="btn btn-default btn-xs" type="submit" value="mise à jour" />
    </form>
<!--Faites attention ici-->
  </body>
</html>

sample.html


<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv='Content-type' content='text/html; charset=utf-8' />
    <title>test</title>
  </head>
  <body>
<!--Faites attention ici-->
    <form action="/user" method="post">
      <input type="hidden" name="_method" value="put"/>
      <input class="btn btn-default btn-xs" type="submit" value="mise à jour" />
    </form>
<!--Faites attention ici-->
  </body>
</html>

Raison

La balise form ne prend en charge que les méthodes get et post. Par conséquent, il semble que la méthode consiste à spécifier method =" post " sur la balise form et à spécifier value =" put " dans le type caché. En conséquence, la méthode de demande est «POST», mais elle est envoyée par «PUT» car elle est envoyée par la méthode spécifiée par «_method». Il semble que d'autres frameworks tels que Rails réalisent également mis de cette manière.

Recommended Posts

Utilisation du type caché lors du PUT avec Thymeleaf
Spécifiez ClassPath lors de l'utilisation de jupyter + Java avec WSL
Accélérez le volume en utilisant Docker avec vscode.
Thymeleaf: sortie avec un délimiteur lors de la sortie avec th: each
Activer ou non SSL lors de l'utilisation de JDBC avec MySQL.
Générer du JavaScript avec Thymeleaf
Comment définir des variables d'environnement lors de l'utilisation de Payjp avec Rails
Faites attention au moment d'initialisation lors de l'utilisation de MessageEncryptor avec Rails 5.2 / 6.0
Lorsque vous utilisez ExpandableListView avec un fragment, une exception se produit lorsque l'héritage est ListFragment.
Précautions lors de l'utilisation de Mockito.anyString comme argument lors de Mocking avec Mockito