Servlet관리자용주문목록3 : 고객주문목록에서 주문 상태 및 운송장정보 변경
주문상태,운송장번호 수정 시나리오
- 페이지 요청 : /AdminOrderDetail.ao?trade_num=20200917-1
- 주문상태, 운송장 번호 입력
- 주문번호 저장해서 이동 (hidden)
- ‘수정하기’ 버튼 클릭 -> submit
- 수정할 페이지 이동 (+ 가상주소)
- 주문상태, 운송장번호, 주문번호
- 컨트롤러 -> Action -> DAO
- DAO 이동시 (주문상태, 운송장번호, 주문번호 )포함 이동
- update 구문사용 (주문상태,운송장번호 수정) 주문번호 - 조건절
- 페이지 이동 (관리자 주문 리스트)
AdminOrderFrontController.java의 doProcess()의 주소비교 후 처리부분에 코드 추가
1 | //주문상태와 운송장번호 변경 |
AdminOrderModifyAction.java 생성
1 | public class AdminOrderModifyAction implements Action { |
AdminOrderDAO.java에 updateOrder()메서드 코드 추가
1 | public interface AdminOrderDAO { |
AdminOrderDAOImpl.java에 updateOrder()메서드 오버라이딩하여 코드 추가
updateOrder(String trade_num)메서드는 pstmt.setInt(1, 1)` 이렇게 작성하면 다른 옵션들은 처리를 고민해야한다.- 1~5번까지(1-“발송준비” 2 - “발송완료” 3 - “배송중” 4 - “배송완료” 5 - “주문취소”) 모든 버튼을 다 만들어야할까? 따라서 이 코드는 매우 비효율적이다.
- 따라서
updateOrder(OrderDTO odto)메서드를 작성해야한다.
1 | //주문목록에서 주문상태만 단순 변경 |
admin_order_list.jsp 링크 수정
- 수정버튼의 기존 코드
'./AdminOrderModify.ao?trade_num=<%=odto.getO_trade_num()%>'에서'./AdminOrderDetail.ao?trade_num=<%=odto.getO_trade_num()%>'로 변경
1 | <td> <input type="button" class="btn" value="수정" |
AdminOrderDetailAction.java 생성
1 | public class AdminOrderDetailAction implements Action { |
AdminOrderDAO.java에 getAdminOrderDetail()메서드 코드 추가
1 | public interface AdminOrderDAO { |
AdminOrderDAOImpl.java에 getAdminOrderDetail()메서드 오버라이딩하여 코드 추가
1 | //주문번호에 해당하는 주문정보(리스트 전체)를 가져오는 동작을 처리 |
admin_order_modify.jsp 생성
- 금액에 천의 단위를 입력하고 싶으면 DecimalFormat 클래스를 사용하면 된다.
DecimalFormat dc = new DecimalFormat("###,###,###,###,###원");
- 테이블전체를 form태그로 감싸야한다.
- AdminOrderDAO 객체 생성 -> 폼태그로 전달받은 파라미터값을 리퀘스트파라미터로 받는다. -> 배송지 수정들을 가능하게 하면 받아야할 파라미터가 많아져서 비효율적이다. 인자가 많아질수록 성능이 비효율적이다 => DTO를 사용하면 한번에 들고 다닐 수 있다.
- 보통 인자는 4~5까지는 파라미터로 받고 그 이상인 경우는 DTO나 BEAN을 이용해야 성능이 좋다.
1 | //전달정보 파라미터값 저장 |
- 전체태그
1 | <% |
![[OS/WINDOW]배포후 서버재시작에 batch와 윈도우 스케줄러 활용하기](https://cdn.pixabay.com/photo/2012/03/04/00/50/board-22098_960_720.jpg)
![[블로그]헥소테마에서 댓글기능 facebook에서 utterances로 변경하기](https://miro.medium.com/max/1600/1*aOv6h3h_v9PQWa03zGACnw.png)