• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

th:action 질문드립니다

24.01.25 19:34 작성 24.01.25 19:36 수정 조회수 159

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님의 프로필

y2gcoder

2024.01.26

안녕하세요. 재영님, 공식 서포터즈 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을 키워드로 한 번 학습해보시는 것을 추천합니다!

감사합니다.

재영님의 프로필

재영

질문자

2024.01.29

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