해결된 질문
작성
·
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을 키워드로 한 번 학습해보시는 것을 추천합니다!
감사합니다.
상세한 답변 정말 감사합니다 !
언급해주신 키워드로 좀 더 학습해보겠습니다 ㅎ