
에러 발생
request.getParameter가 빈 문자열인데
이걸 Integer.parseInt("") 하니 에러가 발생했다
JSP에서 buyNow.do로 값이 안넘어오고 있다
int itemPk = Integer.parseInt(request.getParameter("itemPk"));
int itemCount = Integer.parseInt(request.getParameter("itemCount"));
int itemPrice = Integer.parseInt(request.getParameter("itemPrice"));
여기서 빈문자열이 있기 때문이다
BuyNowAction.java 파일을 맨 뒤에
코드를 넣어 값이 넘어오는지 확인해본다
System.out.println("itemPk = [" + request.getParameter("itemPk") + "]");
System.out.println("itemCount = [" + request.getParameter("itemCount") + "]");
System.out.println("itemPrice = [" + request.getParameter("itemPrice") + "]");

이렇게 빈 문자열이 출력된다
buyNow.do 요청에 파라미터가 하나도 실려오지 않는다는 것이 맞았다
temPk, itemCount, itemPrice를 포함해야 한다
원인
<a> 태그는 값을 전송하지 않는다
내가 처음 작성한 코드
<a href="#" id="buy-now"
data-item-pk="${itemData.itemPk}"
data-item-price="${itemData.itemPrice}">
즉시 구매하기
</a>
data-* 속성은 서버로 자동 전송되지 않음
해결 방법
JS에서 form을 만들어서 POST로 전송
수정 코드
$('#buy-now').on('click', function (e) {
e.preventDefault();
const itemPk = $(this).data('item-pk');
const itemPrice = $(this).data('item-price');
const itemCount = $('#item-count').val();
const form = $('<form>', {
method: 'post',
action: 'buyNow.do'
});
form.append(`<input type="hidden" name="itemPk" value="${itemPk}">`);
form.append(`<input type="hidden" name="itemCount" value="${itemCount}">`);
form.append(`<input type="hidden" name="itemPrice" value="${itemPrice}">`);
$('body').append(form);
form.submit();
});

'🎅 오너먼트 프로젝트' 카테고리의 다른 글
| 결제 API (with 페이 디벨롭퍼) (0) | 2025.12.28 |
|---|---|
| 주소를 로그하지 못하였습니다 (0) | 2025.12.27 |
| JDBC 오너먼트 프로젝트용 계정 생성하고 사용해보기 (0) | 2025.12.22 |
| 장바구니 페이지를 AJAX로 수량 변경, 삭제, 총액 업데이트 진행하기 (0) | 2025.12.18 |
| tags 폴더에 header, footer 만들어 호출해보기 (0) | 2025.12.17 |