[JAVA] Verwendung eines versteckten Typs beim PUT mit Thymeleaf

Beim PUT mit Thymeleaf wird PUT nicht einfach in der Aktion der Formularmethode angegeben.

Hintergrund der Untersuchung

Ich habe es so implementiert, dass es PUT sein kann, aber als ich mir die Anforderungsmethode in der Entwicklerkonsole von Chrome ansah, stellte sich heraus, dass es "POST" war. Weil es wurde. ..

image.png

Mit Blick auf From Data wird es gesetzt. image.png

Sehen Sie, wie die Thymeleaf-Quelle bereitgestellt wird

Wenn Sie sich die Quelle ansehen, können Sie sehen, dass Put realisiert wird, indem Sie den versteckten Typ verwenden, nachdem Sie "post" für die Aktion des Formular-Tags angegeben haben. ・ Was ist versteckter Typ? https://developer.mozilla.org/ja/docs/Web/HTML/Element/Input/hidden Es wird verwendet, wenn Sie einen Wert senden möchten, ohne ihn im Formular anzuzeigen.

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>
<!--Achten Sie hier-->
    <form th:action="@{/user}" th:method="put">
      <input class="btn btn-default btn-xs" type="submit" value="aktualisieren" />
    </form>
<!--Achten Sie hier-->
  </body>
</html>

sample.html


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

Grund

Das Formular-Tag unterstützt nur die Methoden "get" und "post". Daher scheint es, dass die Methode darin besteht, "method =" post "" auf dem Formular-Tag anzugeben und "value =" put "" im versteckten Typ anzugeben. Infolgedessen lautet die Anforderungsmethode "POST", wird jedoch von "PUT" gesendet, da sie von der durch "_method" angegebenen Methode gesendet wird. Es scheint, dass auch andere Frameworks wie Rails dies realisieren.

Recommended Posts

Verwendung eines versteckten Typs beim PUT mit Thymeleaf
Geben Sie ClassPath an, wenn Sie jupyter + Java mit WSL verwenden
Erhöhen Sie die Lautstärke, wenn Sie Docker mit vscode verwenden.
Thymeleaf: Ausgabe mit einem Trennzeichen bei Ausgabe mit th: each
Gibt an, ob SSL bei Verwendung von JDBC mit MySQL aktiviert werden soll.
Generieren Sie JavaScript mit Thymeleaf
Festlegen von Umgebungsvariablen bei Verwendung von Payjp mit Rails
Achten Sie bei der Verwendung von MessageEncryptor mit Rails 5.2 / 6.0 auf den Zeitpunkt der Initialisierung
Bei Verwendung von ExpandableListView mit einem Fragment tritt eine Ausnahme auf, wenn die Vererbung ListFragment lautet.
Vorsichtsmaßnahmen bei der Verwendung von Mockito.anyString als Argument beim Verspotten mit Mockito