[프로젝트] 웹 ITEM FARM - day04

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

오류 및 문제점

1. modal 창으로 객체 전달

  • 문제점: 전달할 데이터가 많기 때문에 modal 창으로 객체를 전달해야 한다.
  • 해결 방안: json object 형태로 데이터를 전달해 값을 부여한다. json 형태의 문자열을 만들기 위해 VO의 toString을 직접 재정의한다. (현재 프로젝트는 가장 많은 속성의 개수가 11개이고 테이블의 개수가 많지 않기 때문에 가능한 방법이다. toStriong을 재정의하기 힘들 만큼 속성과 VO의 수가 많다면 다른 방법을 찾아야 한다.)
// 자세한 내용은 진행 상황 참고
<a data-company="${company}"></a>

$("#CompanyModifyModal").on("show.bs.modal", function (event) {
  var str = $(event.relatedTarget).data('company').split(",");
}

진행 상황

1. modal 창으로 객체 전달

// CompanyVO.java
@Override
public String toString() {
	String str = "";
	str += "'company_id':" + company_id;
	str += ",'company_name':" + company_name;
	str += ",'company_pw':" + company_pw;
	str += ",'company_commission':" + company_commission;
	str += ",'company_status':" + company_status;

	return str;
}
// company_list.jsp
<a data-company="${company}"></a>

$("#CompanyModifyModal").on("show.bs.modal", function (event) {
	var str = $(event.relatedTarget).data('company').split(",");
			
	var json = {};
	$.each(str, function (idx, item) {
		var value = item.split(":");
		json[value[0]] = value[1];
	});
			
	for(let key in json) {
		var id = "#"+key.replaceAll("'", "");
				
		if(!id.includes("status")) {
			$(id).attr("value", json[key]);
		} else {
			if(json[key] == "Y") {
				$("#company_statusN").removeAttr("checked");
				$("#company_statusY").attr("checked", "checked");
			} else {
				$("#company_statusY").removeAttr("checked");
				$("#company_statusN").attr("checked", "checked");
			}
		}			
	}
});

2. 기업 정보 수정

// companyDAO.java
String sql = """
	update company
	set company_name=?, company_pw=?, company_commission=?, company_status=?
	where company_id=?
	""";

// CompanyModifyController.java
HttpServletRequest request = (HttpServletRequest) data.get("request");
		
CompanyVO company = makeCompany(request);
CompanyService service = new CompanyService();
String message = service.companyModify(company);
		
return "redirect:/company/companyList.do";

참고 자료

profile
어쩌다 풀스택 :3

0개의 댓글