EmployeeList.jsp 수정
- 수정 버튼을 눌러 수정 폼 페이지로 이동하게 설정
<td>
<button type="button" class="btn btn-primary control" onclick="location.href='employeeupdateform.action?employeeId=${employee.employeeId}'">수정</button>
</td>
Dispatcher-Servlet 수정
- 업데이트폼 컨트롤러 추가
- 수정 폼에서 필요한건 InsertForm에서와 동일하게 지역,직위,부서 리스트가있고
수정하기 이전 데이터들을 불러와야 한다.
<bean name="/employeeupdateform.action" class="com.test.mvc.EmployeeUpdateFormController">
<property name="employeeDAO" ref="employeeDAO"></property>
<property name="positionDAO" ref="positionDAO"></property>
<property name="departmentDAO" ref="departmentDAO"></property>
<property name="regionDAO" ref="regionDAO"></property>
</bean>
- 수정 폼에서 필요한건 InsertForm에서와 동일하게 지역,직위,부서 리스트가있고
수정하기 이전 데이터들을 불러와야 한다.
package com.test.mvc;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class EmployeeUpdateFormController implements Controller
{
private IEmployeeDAO employeeDAO;
private IRegionDAO regionDAO;
private IDepartmentDAO departmentDAO;
private IPositionDAO positionDAO;
public void setEmployeeDAO(IEmployeeDAO employeeDAO)
{
this.employeeDAO = employeeDAO;
}
public void setRegionDAO(IRegionDAO regionDAO)
{
this.regionDAO = regionDAO;
}
public void setDepartmentDAO(IDepartmentDAO departmentDAO)
{
this.departmentDAO = departmentDAO;
}
public void setPositionDAO(IPositionDAO positionDAO)
{
this.positionDAO = positionDAO;
}
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception
{
ModelAndView mav = new ModelAndView();
ArrayList<Region> regionList = new ArrayList<Region>();
ArrayList<Department> departmentList = new ArrayList<Department>();
ArrayList<Position> positionList = new ArrayList<Position>();
try
{
String employeeId = request.getParameter("employeeId");
Employee employee = new Employee();
employee = employeeDAO.searchId(employeeId);
regionList = regionDAO.list();
departmentList = departmentDAO.list();
positionList = positionDAO.list();
mav.addObject("employee", employee);
mav.addObject("regionList", regionList);
mav.addObject("departmentList", departmentList);
mav.addObject("positionList", positionList);
mav.setViewName("/WEB-INF/view/EmployeeUpdateForm.jsp");
} catch (Exception e)
{
System.out.println(e.toString());
}
return mav;
}
}
- 단 사원번호는 넘겨받았으나 여기서 다시 UpdateController에게 넘겨주지 않는다면 값을 알수 없다.
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EmployeeInsertForm.jsp</title>
<link rel="stylesheet" type="text/css" href="<%=cp %>/css/main.css">
<link rel="stylesheet" type="text/css" href="<%=cp %>/css/jquery-ui.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<style type="text/css">
#content
{
border: 1px solid #ccc;
border-radius: 5px;
width: 500px;
padding: 15px;
margin: 30px;
}
.input-group
{
margin: 10px;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript" src="<%=cp%>/js/jquery-ui.js">
<script>
$(document).ready(function()
{
ajaxRequest();
$("#birthday").datepicker(
{
dateFormat: "yy-mm-dd"
, changeMonth: true
, changeYear: true
});
$("#positionId").change(function()
{
ajaxRequest();
});
$("#submitBtn").click(function()
{
if ($("#name").val()=="" || $("#ssn1").val()=="" || $("#ssn2").val()==""
|| $("#birthday").val()=="" || $("#telephone").val()==""
|| $("#basicPay").val()=="")
{
$("#err").html("필수 입력 항목이 누락되었습니다.");
$("#err").css("display", "inline");
return;
}
if ( parseInt($("#minBasicPay").text()) > parseInt($("#basicPay").val()) )
{
$("#err").html("입력하신 기본급이 최소 기본급보다 작습니다.");
$("#err").css("display", "inline");
return;
}
$("#employeeForm").submit();
});
$("#listBtn").click(function()
{
$(location).attr("href", "employeelist.action");
});
});
function ajaxRequest()
{
$.post("ajax.action"
, {
positionId: $("#positionId").val()}
, function(data)
{
$("#minBasicPay").html(data);
});
}
</script>
</head>
<body>
<div>
<c:import url="EmployeeMenu.jsp"></c:import>
</div>
<label style="text-align: left;">직원 관리 > 직원 정보 입력</label>
<div align="center">
<div id="content" align="left">
<form action="employeeupdate.action" method="post" id="employeeForm">
<div class="form-group">
<div class="input-group">
<div class="input-group-addon">사원번호</div>
<input type="text" id="employeeId" name="employeeId" class="form-control" placeholder="사원번호" value="${employee.employeeId}" readonly="readonly"/>
</div>
<div class="input-group">
<div class="input-group-addon">이름</div>
<input type="text" id="name" name="name" class="form-control" placeholder="이름" value="${employee.name}"/>
</div>
<div class="input-group">
<div class="input-group-addon">주민번호</div>
<input type="text" id="ssn1" name="ssn1" class="form-control" value="${employee.ssn1}"/>
<div class="input-group-addon"> - </div>
<input type="password" id="ssn2" name="ssn2" class="form-control"/>
</div>
<div class="input-group">
<div class="input-group-addon">생년월일</div>
<input type="text" id="birthday" name="birthday" class="form-control" placeholder="생년월일" value="${employee.birthday}"/>
</div>
<div class="input-group">
<div class="input-group-addon">양 / 음력</div>
<div class="form-control">
<input type="radio" value="0" name="lunar" id="lunar0" ${employee.lunar==0 ? "checked=\"checked\"": "" }/>
<label for="lunar0">양력</label>
<input type="radio" value="1" name="lunar" id="lunar1" ${employee.lunar==1 ? "checked=\"checked\"": "" }/>
<label for="lunar1">음력</label>
</div>
</div>
<div class="input-group">
<div class="input-group-addon">전화번호</div>
<input type="tel" id="telephone" name="telephone" class="form-control" placeholder="ex) 010-1234-1234" value="${employee.telephone}"/>
</div>
<div class="input-group">
<div class="input-group-addon">지역</div>
<select name="regionId" id="regionId" class="form-control">
<c:forEach var="region" items="${regionList }">
<option value="${region.regionId }"
${employee.regionId == region.regionId ? "selected=\"selected\"" : "" }>${region.regionName }</option>
</c:forEach>
</select>
</div>
<div class="input-group">
<div class="input-group-addon">부서</div>
<select name="departmentId" id="departmentId" class="form-control">
<c:forEach var="department" items="${departmentList }">
<option value="${department.departmentId }" ${employee.departmentId == department.departmentId ? "selected=\"selected\"" :""}>
${department.departmentName }
</option>
</c:forEach>
</select>
</div>
<div class="input-group">
<div class="input-group-addon">직위</div>
<select name="positionId" id="positionId" class="form-control">
<c:forEach var="position" items="${positionList }">
<option value="${position.positionId }" ${employee.positionId == position.positionId ? "selected=\"selected\"" : "" }>
${position.positionName }
</option>
</c:forEach>
</select>
</div>
<div class="input-group">
<div class="input-group-addon">기본급</div>
<input type="text" id="basicPay" name="basicPay" class="form-control" value="${employee.basicPay}"/>
<div class="input-group-addon">원</div>
<div class="input-group-addon">수당</div>
<input type="text" id="extraPay" name="extraPay" class="form-control" value="${employee.extraPay}" />
<div class="input-group-addon">원</div>
</div>
<div class="input-group" style="text-align: left;">
(최소 기본급
<span id="minBasicPay" style="color: red; font-weight: bold;">0</span>
원)
</div>
<br /><br />
<div class="input-group">
<div align="center">
<br /><br />
<button type="button" class="btn btn-primary btn-lg" id="submitBtn"
style="width: 45%;">직원 수정</button>
<button type="button" class="btn btn-default btn-lg" id="listBtn"
style="width: 45%;"
onclick="location.href='employeelist.action'">직원 리스트</button>
<br /><br />
<span id="err" style="color: red; font-weight: bold; display: none;">
</span>
</div>
</div>
</div>
</form>
</div>
</div>
</body>
</html>
Dispatcher-servlet.xml 수정
<bean name="/employeeupdate.action" class="com.test.mvc.EmployeeUpdateController">
<property name="dao" ref="employeeDAO"></property>
</bean>
⛏️ EmployeeUpdateController.java
package com.test.mvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class EmployeeUpdateController implements Controller
{
private IEmployeeDAO dao;
public void setDao(IEmployeeDAO dao)
{
this.dao = dao;
}
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception
{
ModelAndView mav = new ModelAndView();
Employee employee = new Employee();
employee.setEmployeeId(request.getParameter("employeeId"));
employee.setName(request.getParameter("name"));
employee.setSsn1(request.getParameter("ssn1"));
employee.setSsn2(request.getParameter("ssn2"));
employee.setBirthday(request.getParameter("birthday"));
employee.setLunar(Integer.parseInt(request.getParameter("lunar")));
employee.setTelephone(request.getParameter("telephone"));
employee.setRegionId(request.getParameter("regionId"));
employee.setDepartmentId(request.getParameter("departmentId"));
employee.setPositionId(request.getParameter("positionId"));
employee.setBasicPay(Integer.parseInt(request.getParameter("basicPay")));
employee.setExtraPay(Integer.parseInt(request.getParameter("extraPay")));
try
{
int result = dao.modify(employee);
} catch (Exception e)
{
System.out.println(e.toString());
}
mav.setViewName("employeelist.action");
return mav;
}
}