인프런 커뮤니티 질문&답변

Lego님의 프로필 이미지
Lego

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

상품 수정

form태그 url과 button태그 url

작성

·

203

0

th:onclick="|location.href='@{/basic/items/{itemId}(itemId=${item.id})}'|"

이 button 태그를 form태그가 더 큰 범위에서 둘러싸고 있습니다.

<form action="item.html" th:action method="post">

th:action으로 현재 페이지로 url이 설정돼있고 http 메서드 방식은 post 방식인데

 

1. editForm에서 취소 버튼을 누르면 <button> 태그에서 지정한 url로 이동하는 이유가 세부적으로 지정해줬기 때문인가요???

  1. 취소 버튼을 눌렀을 때 post 방식으로 이동하는 것인가요?

  2. 2번이 맞다면 보내는 데이터가 없으니까 Get방식이어야 하는 것 아닌가요?

답변 1

2

안녕하세요, Lego 님. 공식 서포터즈 y2gcoder 입니다.

주신 질문들은 전부 html 태그 중 button 태그의 기능에 대해서 질문을 주신 것으로 보입니다. 하나씩 답변드리도록 하겠습니다 :)

editForm에서 취소 버튼을 누르면 <button> 태그에서 지정한 url로 이동하는 이유가 세부적으로 지정해줬기 때문인가요???

=> 취소 버튼의 type button으로 되어 있습니다. button의 타입이 button이면 기본적으로는 아무 동작도 하지 않습니다. 거기에 저희는 location.href의 기능과 html 태그의 onclick 속성을 이용해 취소 버튼을 눌렀을 때 화면을 이동하는 기능을 추가한 것입니다.

취소 버튼을 눌렀을 때 post 방식으로 이동하는 것인가요?

=> 아닙니다. form 태그 안에 있기는 하나 해당 버튼은 type이 button이고 아무 기능이 없던 것에 onclick과 location.href로 기능을 추가한 것입니다. 그리고 location.href를 사용하면 잘 아시는 anchor 태그(<a>)와 같이 GET 방식으로 이동하게 됩니다 :)

2번이 맞다면 보내는 데이터가 없으니까 Get방식이어야 하는 것 아닌가요?

=> 해당 부분은 결론적으로는 맞는 말씀이기는 하나 GET, POST 방식의 차이에 대해서 잘못 알고 계신 것 같습니다. GET 또한 쿼리 스트링을 통해 데이터를 전달할 수 있습니다. 두 메서드는 사용하는 목적에 따라 구분하는 것이 맞습니다. GET은 리소스를 조회하는 것에, POST는 요청 데이터를 처리(주로 등록)하는 것에 사용한다는 차이가 있습니다. 두 메서드 간의 차이에 대해서 좀 더 궁금하시다면 영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 수강해주시길 권해드립니다.

감사합니다.

Lego님의 프로필 이미지
Lego
질문자

친절한 답변 감사드립니다!

파이팅입니다!

Lego님의 프로필 이미지
Lego

작성한 질문수

질문하기