💡 핵심 요약 (TL;DR)
Servlet관리자용주문목록2 : 고객주문목록의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다.
핵심 설정과 구현 코드를 단계별로 파악하여 상황에 맞게 유연하게 활용할 수 있다.
AdminOrderFrontController.java의 doProcess()의 주소비교 후 처리부분에 코드 추가1 2 3 4 5 6 if (command.equals("/AdminOrderList.ao" )){ action = new AdminOrderListAction (); try { forward = action.execute(request, response); }catch (Exception e) {e.printStackTrace();} }
AdminOrderListAction.java 생성
if(id == null || id.equals(“admin”)) 에서 null을 먼저 비교해야한다. id.equals("admin") 비교하는 경우 id가 null일때 id.equals(null)이 실행되면서 에러가 발생한다. 따라서 id == null을 먼저 비교해야한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public class AdminOrderListAction implements Action { @Override public ActionForward execute (HttpServletRequest request, HttpServletResponse response) throws Exception { request.setCharacterEncoding("UTF-8" ); HttpSession session = request.getSession(); String id = (String) session.getAttribute("id" ); ActionForward forward = new ActionForward (); if (id == null || !id.equals("admin" )){ forward.setPath("./MemberLogin.me" ); forward.setRedirect(true ); return forward; } AdminOrderDAO aodao = new AdminOrderDAOImpl (); request.setAttribute("AdminOrderList" , aodao.getAdminOrderList()); forward.setPath("./adminorder/admin_order_list.jsp" ); forward.setRedirect(false ); return forward; } }
AdminOrderDAOImpl.java에 getAdminOrderList()메서드 코드 추가1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 @Override public List getAdminOrderList () { List AdminOrderList = new ArrayList (); try { getCon(); sql="select o_trade_num,o_g_name,o_g_amount,o_g_size,o_g_color," + "sum(o_sum_money) as o_sum_money," + "o_trade_type,o_trans_num,o_date,o_status,o_m_id " + "from itwill_order " + "group by o_trade_num " + "order by o_trade_num" ; pstmt = con.prepareStatement(sql); rs = pstmt.executeQuery(); while (rs.next()){ OrderDTO odto = new OrderDTO (); odto.setO_date(rs.getDate("o_date" )); odto.setO_g_amount(rs.getInt("o_g_amount" )); odto.setO_g_color(rs.getString("o_g_color" )); odto.setO_g_name(rs.getString("o_g_name" )); odto.setO_g_size(rs.getString("o_g_size" )); odto.setO_trade_num(rs.getString("o_trade_num" )); odto.setO_trans_num(rs.getString("o_trans_num" )); odto.setO_sum_money(rs.getInt("o_sum_money" )); odto.setO_status(rs.getInt("o_status" )); odto.setO_trade_type(rs.getString("o_trade_type" )); odto.setO_m_id(rs.getString("o_m_id" )); AdminOrderList.add(odto); } }catch (Exception e){ e.printStackTrace(); } finally { closeDB(); } return AdminOrderList; }
admin_order_list.jsp 생성
if-else보다 swith가 더 효율적이다. if-else는 모든 연산을 다 해야하니까
if-else를 쓸꺼면 꼭 else를 챙겨야한다. 모든 예외상황을 다 관리해야하니까
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 <% System.out.println("V : 관리자 주문목록 처리 페이지"); List<OrderDTO > adminOrderList = (List<OrderDTO > ) request.getAttribute("adminOrderList"); %> <table border ="1" > <tr > <td > 주문번호</td > <td > 주문자</td > <td > 결재방법</td > <td > 주문금액</td > <td > 주문상태</td > <td > 주문일시</td > <td > 수정 / 삭제</td > </tr > <% for(OrderDTO odto:adminOrderList){ %> <tr > <td > <%=odto.getO_trade_num() %></td > <td > <%=odto.getO_m_id() %></td > <td > <%=odto.getO_trade_type() %></td > <td > <%=odto.getO_sum_money() %></td > <% // if-else보다 swith가 더 효율적이다. if-else는 모든 연산을 다 해야하니까 // if-else를 쓸꺼면 꼭 else를 챙겨야한다. 모든 예외상황을 다 관리해야하니까 String status = ""; if(odto.getO_status() == 0){ status="대기중"; } else if(odto.getO_status() == 1){ status="발송준비"; } else if(odto.getO_status() == 2){ status="발송완료"; } else if(odto.getO_status() == 3){ status="배송중"; } else if(odto.getO_status() == 4){ status="배송완료"; } else if(odto.getO_status() == 5){ status="주문취소"; } else{ status="문제발생"; } %> <td > <%=status %> </td > <td > <%=odto.getO_date() %> </td > <td > <input type ="button" class ="btn" value ="수정" onclick ="location.href='./AdminOrderModify.ao?trade_num=<%=odto.getO_trade_num()%>'" > / <input type ="button" class ="btn" value ="삭제" onclick ="location.href=" > </td > </tr > <% } %> </table > <input type ="button" class ="btn" value ="메인페이지로" onclick ="location.href='./Main.me'" >
#TIL ITWILL(JAVA)