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

재영님의 프로필 이미지
재영

작성한 질문수

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

상품 등록 폼

th:action 질문드립니다

해결된 질문

작성

·

313

·

수정됨

0

상품 등록 버튼을 눌렀을 때, items/add로 이동하는 걸

th:action 대신

th:onclick="|location.href='@{/basic/addForm.html}'|"

로 적어도 되나요?

 

단순히 url 이동이 아니라, 상품 등록 버튼을 눌렀을 때, 상품을 실제로 저장하는 액션이 있기 때문에 th:action을 사용해야 하는 것인가요?

 

 

상품 등록 버튼을 눌렀을 때의 결과를 작업하는 것인데,

<button class="w-100 btn btn-primary btn-lg" type="submit">상품 등록
</button>

여기가 아닌,

 

<h4 class="mb-3">상품 입력</h4>
<form action="item.html" th:action method="post">

여기서 처리하는지 궁금합니다.

 

답변 1

1

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

해당 내용은 비단 thymeleaf만이 아닌 아닌 html form과 관련된 동작을 이해하셔야 합니다!

location.href와 html form submit은 서로 다른 역할이 있고, 동작 또한 다릅니다 :)

location.href 는 단순히 페이지를 이동할 수 있는 기능이라 보시면 됩니다. HTTP Method 또한 GET으로 나가기 때문에 한번 해보시면 원하시는대로 동작하지 않을 것입니다.

html form submit 은 기본적으로 <form> 태그 내에 있는 input 값들을 폼 데이터로 말아서 서버로 제출(submit) 해주는 기능이라고 보셔야 합니다. 주로 HTTP Method는 POST로 나가고, 요청하면서 폼 데이터도 같이 보내서 서버에서 해당 폼 데이터를 가지고 어떤 작업을 해주게 됩니다.

상품 등록 기능은 단순 페이지 이동이 아니라 저희가 입력한 데이터를 가지고 서버에서 저장하고 그 결과로 페이지가 이동하는 것이기 때문에 location.href가 아닌 html form submit이 더 적합하다고 생각합니다. 자세한 것은 window.location.href, html form submit을 키워드로 한 번 학습해보시는 것을 추천합니다!

감사합니다.

재영님의 프로필 이미지
재영
질문자

상세한 답변 정말 감사합니다 !
언급해주신 키워드로 좀 더 학습해보겠습니다 ㅎ

재영님의 프로필 이미지
재영

작성한 질문수

질문하기