Servlet일반상품3 : 상품 상세페이지, c:forTokens
GoodsFrontController.java
의 doProcess()의 주소비교 후 처리부분에 코드 추가
1 | //상품 상세페이지 |
GoodsDetailAction.java
생성
- GoodsDAO객체 생성 후 getGoodsDetail()생성시 아래 코드를 한줄로 나타낼 수 있다.
- 변수를 굳이 사용하지않는다면 한 줄코딩하는 것이 좋다.
1 | //두줄 |
- 전체코드
1 | public class GoodsDetailAction implements Action { |
AdminGoodsDAO.java
생성 후 getGoodsDetail()메서드 코드 추가
1 | //상품 상세정보 가져오기 |
goods_detail.jsp
생성
- DB의 정보를 request에 저장했고 그걸 불러와서 select항목에 넣을 수 있다. 이때 두가지 방법이 있다.
- <c:forEach>와 <c:forTokens>의 차이점은 <c:forTokens>의 경우 문자열을 분리자를 사용해서 분리해서 출력가능
1 | <c:forTokens var="name" items="고양이,강아지,소" delims=","> |
첫번째 방법 : forTokens +스크립틀릿사용
1 | <select> |
두번째 방법 : forTokens + EL태그사용
1 | <select> |
javascript 코드 한줄로 불러오기
- a태그를 이용하면 href로 항상 페이지이동이 된다. 이를 막기 위해서는 2가지 방법이 있다.
- e.preventDefault();
javascript:isBasket();
1 | //원치않는 href="#"가 진행되어 페이지이동이 일어난다(여기선 새로고침) |
구매수량이 재고보다 많은 경우 제어
- 자바표현식 : DB정보를 꺼내오기 불가능. 페이지 구성상 제일 마지막에 호출되므로 자바표현식으로 사용불가능
- EL표현식 : DB정보를 꺼내오기 가능.
- 자바스크립트태그안에서는 EL표현식을 문자형태(‘’)로 사용하는 것이 일반적.
- 문자형태로 쓰지않아도 객체로 처리되기때문에 동일하게 처리되나 문법상 문자형태로 (‘’)써줘야 함.
1 | // 구매 수량 |
전체코드
1 | <% |