[프로젝트] 웹 ITEM FARM - day07

_bean_·2023년 4월 25일
0
post-thumbnail

오류 및 문제점

1. 테이블 필터링 개수 오류

  • 문제점: 상태 필터의 결과로 ajax를 사용해 tbody만 변경했더니 가져온 디자인의 개수, 검색, 페이지네이션이 일치하지 않는다.
  • 해결 방안: form을 제출하면 페이지를 새로고침 되도록 방식을 바꾼다.

2. javax.el.PropertyNotFoundException

  • 문제점: 기업 기능 제한 중 el을 서버에서 먼저 읽어 manager_pw를 불러올 수 없다는 오류가 발생한다.
  • 해결 방안: el 문법 내에서 조건문을 작성한다.
// 변경 전
if ("${managerUser}" != "" && "${managerUser}" != null) 
  var m = "${managerUser.manager_pw}";

// 변경 후
var m = "${managerUser == '' || managerUser == null ? 0 : managerUser.manager_pw}";
	if(m == 0) 
      return;

진행 상황

1. 상품, 기업 상태 필터

// ProductListController.java
if(method.equals("GET")) {
	productList = service.productList(comId, "all");
	request.setAttribute("filter", "all");
	page = "/product/product_list.jsp";
} else {
	String cond = request.getParameter("prodStatus-filter");
	productList = service.productList(comId, cond);
	request.setAttribute("filter", cond);
	page = "/product/product_list.jsp";
}
<!-- product_list.jsp -->
<form id="prodFilter" method="post" action="/product/productList.do">
  <label>
    <select id="prodStatus-filter" name="prodStatus-filter" class="custom-select custom-select-sm form-control form-control-sm">
      <option value="all" ${filter == "all" ? "selected" : ""}>전체보기</option>
      <option value="Y" ${filter == "Y" ? "selected" : ""}>활성</option>
      <option value="N" ${filter == "N" ? "selected" : ""}>비활성</option>
    </select>
  </label>
  <input type="submit" value="조회">
</form>

2. 에러 페이지

<!-- error404.jsp -->
<div class="container-fluid">
  <!-- 404 Error Text -->
  <div class="text-center">
    <div class="error mx-auto" data-text="404">404</div>
    <p class="lead text-gray-800 mb-5">Page Not Found</p>
    <p class="text-gray-500 mb-0">죄송합니다. 요청하신 페이지는 찾을 수 없는 페이지입니다.</p>
    <a href="/">&larr; Back to Dashboard</a>
  </div>
</div>

<!-- error500.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true"%>
<div class="container-fluid">
  <!-- 500 Error Text -->
  <div class="text-center">
    <div class="error mx-auto" data-text="500">500</div>
    <p class="lead text-gray-800 mb-5"><%=exception.getMessage()%></p>
    <p class="text-gray-500 mb-0">죄송합니다. 페이지를 처리하는 동안 오류가 발생했습니다.</p>
    <a href="/">&larr; Back to Dashboard</a>
  </div>
</div>
  
<!-- web.xml -->
<error-page>
  <error-code>404</error-code>
  <location>/error/error404.jsp</location>
</error-page>
<error-page>
  <error-code>500</error-code>
  <location>/error/error500.jsp</location>
</error-page>

3. 기업 기능 제한

  • header의 로그인 정보, 조회 기업 변경 select 제한
  • 상품 조회, 주문건 조회, 입출고 내역 조회, 마케팅 리포트에만 접근 가능
    • 페이지 내에서도 등록, 수정 등의 기능은 제한
<!-- nav.jsp -->
<c:if test="${managerUser != null && managerUser != ''}">
  <!-- Nav Item - Dashboard -->
  <li class="nav-item">
    <a class="nav-link" href="../company/companyList.do">
      <i class="fas fa-fw fa-city"></i>
      <span>기업관리</span>
    </a>
  </li>
</c:if>

참고 자료

profile
어쩌다 풀스택 :3

0개의 댓글