➌
<form:form name="addForm" method="put">
<p><a href="javascript:addToCart('../cart/add/${book.bookId}')" class="btn btn-primary">도서주문 »</a>
<a href="<c:url value="/cart"/>" class="btn btn-warning">장바구니 »</a>
<a href="<c:url value="/books"/>" class="btn btn-default">도서 목록 »</a>
</form:form>
...
➊ 스프링에서 제공하는 폼 태그 라이브러리를 사용하려고 선언합니다.
➋ 애플리케이션에 적용할 자바스크립트 파일 controllers.js의 경로 위치를 설정합니다. 여기에서 ${pageContext.request.contextPath}는 요청 경로가 바뀌어도 소스를 수정하지 않고 적용하는 데 사용됩니다.
예를 들어 요청 URL이 http://localhost:8080/BookMarket/resource/js/controllers.js라면 pageContext.request.contextPath는 http://localhost:8080/Chapter14/ 경로에 해당됩니다.
➌ 스프링에서 제공하는 폼 태그 라이브러리 중 <form:form> 태그를 사용하여 [도서주문 >>] 버튼 동작을 수행하는 설정을 추가했습니다. 도서주문 >> 버튼을 누르면 자바스크립트의 addToCart() 함수가 호출됩니다. 또한 <form:form> 태그에 선언된 웹 요청 URI ../cart/add/${book.bookId} 및 HTTP 메서드가 PUT 방식으로 전송됩니다. CartController 클래스의 addCartByNewItem() 메서드에 매핑되어 해당 도서가 장바구니에 추가로 등록됩니다.