
<form class="form" method="post" action="/coupon-policies/price/book/modify">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="id" th:value= "${pricePolicyForBook.getId()}">
<div class="row">
<div class="col-12">
<div class="form-group">
<label>정책명<span>*</span></label>
<input name="name" type="text" th:value="${pricePolicyForBook.getName()}">
</div>
</div>
<div class="col-12">
<div class="form-group">
<label>정책설명<span>*</span></label>
<input name="description" type="text" th:value="${pricePolicyForBook.getDescription()}">
</div>
</div>
<div class="col-12">
<div class="form-group">
<label>유효기간<span>*</span></label>
<p>시작</p>
<input name="expirationPeriodStart" type="datetime-local" th:value="${pricePolicyForBook.getExpirationPeriodStart()}">
<p>종료</p>
<input name="expirationPeriodEnd" type="datetime-local" th:value="${pricePolicyForBook.getExpirationPeriodEnd()}">
</div>
</div>
<div class="col-12">
<div class="form-group">
<label>최소주문금액<span>*</span></label>
<input name="minimumOrderAmount" type="text" th:value="${pricePolicyForBook.getMinimumOrderAmount()}">
</div>
</div>
<div class="col-12">
<div class="form-group">
<label>할인금액<span>*</span></label>
<input name="discountPrice" type="text" th:value="${pricePolicyForBook.getDiscountPrice()}">
</div>
</div>
<div class="col-12">
<div class="form-group">
<label>적용 도서<span>*</span></label>
<input id="bookIsbn13" name="bookIsbn13" type="text" placeholder="지정할 도서의 ISBN13을 입력해주세요" th:value="${pricePolicyForBook.getBookIsbn13()}">
</div>
</div>
<div class="col-12">
</div>
<div class="col-12 pt-5 text-right">
<div class="form-group button col-12">
<button type="submit" class="btn ">정책 수정</button>
<button type="submit" class="btn ">취소</button>
</div>
</div>
</div>
</form>
// 정률정책forBook 수정
@PutMapping("/coupon-policies/rate/book/modify")
public String modifyRatePolicyForBook(@ModelAttribute UpdateRatePolicyForBookRequest updateRatePolicyForBookRequest){
couponPolicyService.updateRatePolicyForBook(updateRatePolicyForBookRequest);
return "redirect:/coupon-policies/price/book";
}
html 폼에 입력된 정보들을
컨트롤러에 받아오기 위해 @ModelAttribute 어노테이션을 사용하여
객체로 바인딩 하던 중이었다.
근데 디버깅을 해보니까 얼레 , 모두 안넘어온다


원인은 기본생성자 어노테이션이었다
@NoArgsConstructor가 있으면
기본생성자를 우선하기 때문에, 기본생성자로 객체를 초기화해주기때문에
null이 뜬다
따라서 @AllArgsConstructor를 사용한뒤, @NoArgsConstrucotor를 제거해주니까 정상적으로 바인딩 되었다


추가로 @Setter를 사용해도 바인딩이 되었다

