작성
·
236
0
안녕하세요?? 김영한 님
다름이 아니라 웹 계층 개발에서 상품 등록 시
상품등록 form 페이지에서 기존에 회원 가입 폼에서처럼
<form th:action="/items/news" th:object="${form}" method="post">
라고 하면 오류가 납니다.
<form th:action="@{/items/news}" th:object="${form}" method="post">
action을 바꾸어 주면 정상적으로 실행이 되는데 그 이유는 무엇인가요?
왜 회원등록에서는 @{member/new}로 안 해 주어도 회원등록이 되는데
상품등록에서는 오류가 나는지 정말 궁금합니다.
답변 부탁 드립니다. 감사합니다.
답변 1
0
안녕하세요. 임정훈님^^
회원등록시에는 다음과 같이 순수한 html form을 사용합니다.
<form role="form" action="/members/new" ...>
반면에 상품등록에서는 thymeleaf라는 뷰템플릿이 제공하는 방식으로 form을 사용합니다. 여기에 붙는 th: 가 바로 thymeleaf가 제공하는 문법입니다.
<form th:action="@{/items/new}" th:object="${form}" method="post">
thymeleaf는 url을 표현할 때 @{url} 표현식을 사용해야 합니다. 그래서 그냥 적으면 문법 오류가 발생합니다.
이런 뷰템플릿을 이용하면 최종은 순수한 html로 변환되어서 고객에게 전달됩니다. 회원등록과 상품등록의 코드를 비교해보면 알겠지만 확실히 뷰템플릿을 활용하는 것이 더 많은 이점이 있습니다^^
타임리프 @{url} 문법은 다음 링크를 참고해주세요.
https://www.thymeleaf.org/doc/articles/standardurlsyntax.html
감사합니다.