오류 및 문제점
1. 조회 기업 세션 저장 방법 변경
- 문제점:현재 방법(주소창 url로 ajax를 보내는 방법)을 수행하면 모든 주소창에 parameter 정보가 보이고 모든 get 요청 시 parameter를 추가해 전송해야 한다.
- 해결 방안: 세션에 저장된 값을 변경하는 컨트롤러를 따로 만든 후 ajax를 해당 컨트롤러로 전송한다.
2. MySQL 쿼리 결과 중 첫 행만 추출
- 문제점: 관리자 로그인 시 default 기업을 설정하기 위해 기업 목록의 첫 행만 추출해야 한다.
- 해결 방안: limit 조건을 사용해 추출할 행의 개수를 제한한다.
select company_id, company_name from company order by company_id limit 1;
진행 상황
1. 조회 기업 세션 저장 방법 변경
<script>
$(".dropdown-item").on("click", function () {
var comId = $(this).attr("data-comId");
var comName = $(this).attr("data-comName");
$.ajax({
url: "/session.do",
data: {"comId":comId, "comName":comName},
success: function (result) {
$(location).attr("href", $(location).attr("pathname"));
},
error: function(message) {
alert(message);
}
});
});
</script>
public class SessionController implements CommonInterface{
@Override
public String execute(Map<String, Object> data) throws Exception {
HttpServletRequest request = (HttpServletRequest) data.get("request");
HttpSession session = request.getSession();
int comId = Integer.parseInt(request.getParameter("comId"));
String comName = request.getParameter("comName");
session.setAttribute("comId", comId);
session.setAttribute("comName", comName);
return "responseBody:OK";
}
}
2. 상품 정보 수정
String sql = """
update product
set subcategory_name=?, product_name=?, product_cost=?, product_price=?,
product_stock=?, product_safety=?, product_status=?
where product_code=?
""";
HttpServletRequest request = (HttpServletRequest) data.get("request");
ProductVO product = makeProduct(request);
ProductService service = new ProductService();
String message = service.productModify(product);
return "redirect:/product/productList.do";
참고 자료