Thymeleaf로 PUT할 때 hidden형을 사용하고 있다
Thymeleaf로 PUT할 때는 단순히 form 메소드의 action에 PUT를 지정하고 있는 것은 아니다.
조사한 경위
PUT 할 수 있도록 구현했는데 chrome의 developer 콘솔에서 Request Method를 보았는데
POST
되었기 때문에. .From Data를 보면 put이 되어 있다.
Thymeleaf 소스가 어떻게 배포되는지 살펴보기
form 태그의 action에는
post
를 지정한 다음 hidden형을 사용하여 put을 실현하고 있는 것이 소스를 보면 알 수 있다.・hidden형이란
htps : //로 ゔぇぺぺr. 모잖아. 오 rg / 자 / 도 cs / u b / HTML / 에멘 t / amp t / 히든
원래 양식에 표시하지 않고 값을 제출하고 싶을 때 등에 사용하는 것.
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>
<!-- ここに注目 -->
<form th:action="@{/user}" th:method="put">
<input class="btn btn-default btn-xs" type="submit" value="更新" />
</form>
<!-- ここに注目 -->
</body>
</html>
sample.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-type' content='text/html; charset=utf-8' />
<title>test</title>
</head>
<body>
<!-- ここに注目 -->
<form action="/user" method="post">
<input type="hidden" name="_method" value="put"/>
<input class="btn btn-default btn-xs" type="submit" value="更新" />
</form>
<!-- ここに注目 -->
</body>
</html>
이유
form 태그는,
get
와 post
메소드 밖에 서포트하고 있지 않다.그 때문에, form 태그상은
method="post"
를 지정해, hidden형으로 value="put"
를 지정하는 방법을 취하고 있다고 생각된다.결과적으로 Request Method는
POST
하지만 _method
로 지정한 메소드로 송신되기 때문에 PUT
로 송신된다. 조사해 보면 다른 Rails등의 프레임워크에서도 이런 방법으로 put을 실현하고 있는 것 같다.
Reference
이 문제에 관하여(Thymeleaf로 PUT할 때 hidden형을 사용하고 있다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yukiyoshimura/items/a4a4b35a3abbb5caa9f4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)