티스토리 뷰
데이터 insert와는 다르게,
update같은 경우에는 기본 form에 사용자 정보를 뿌려줘야 한다.
현재 자신의 정보를 보고 수정해야 하므로..
그 외에는 insert와 다를 바가 없다.
간단하게 form부터 보면,
이런 형식이다. 이렇게 간단한 폼이라면 보통 insert, update form을 공통으로 사용하기도 한다.
먼저 소스를 보면,
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 50 51 52 53 | <form role= "form" method= "post" action= "" id= "form_value" > <c:forEach items= "${empDetail}" var= "emp" > <div class = "form-group" > <label>사번:</label> <input type= "number" class = "form-control" name= "empNo" placeholder= "사번(숫자만 입력하세요)" value= "${emp.empNo}" readonly= "readonly" > </div> <div class = "form-group" > <label>이름:</label> <input type= "text" class = "form-control" name= "eName" placeholder= "이름을 입력하세요" value= "${emp.eName}" > </div> <div class = "form-group" > <label>업무:</label> <input type= "text" class = "form-control" name= "job" placeholder= "업무를 입력하세요" value= "${emp.job}" > </div> <div class = "form-group" > <label>입사일:</label> <input type= "date" class = "form-control" name= "hireDate" value= "${emp.hireDate}" > </div> <div class = "form-group" > <label>급여:</label> <input type= "number" class = "form-control" name= "sal" placeholder= "급여(숫자만 입력하세요)" value= "${emp.sal}" > </div> <div class = "form-group" > <label>커미션:</label> <input type= "number" class = "form-control" name= "comm" placeholder= "커미션(숫자만 입력하세요)" value= "${emp.comm}" > </div> <div class = "form-group" > <label>부서번호:</label> <c: if test= "${emp.deptNo == 10}" > <c:set var= "selected10" value= "selected" /> </c: if > <c: if test= "${emp.deptNo == 20}" > <c:set var= "selected20" value= "selected" /> </c: if > <c: if test= "${emp.deptNo == 30}" > <c:set var= "selected30" value= "selected" /> </c: if > <c: if test= "${emp.deptNo == 40}" > <c:set var= "selected40" value= "selected" /> </c: if > <select name= "deptNo" id= "deptNo" > <option value= "10" ${selected10}> 10 </option> <option value= "20" ${selected20}> 20 </option> <option value= "30" ${selected30}> 30 </option> <option value= "40" ${selected40}> 40 </option> </select> </div> <div class = "form-group" > <label>부서명:</label> <input type= "text" class = "form-control" name= "deptName" readonly= "readonly" value= "${emp.dName }" id= "deptName" > </div> <div class = "form-group" > <label>근무지:</label> <input type= "text" class = "form-control" name= "loc" readonly= "readonly" value= "${emp.loc}" id= "loc" > </div> <div align= "right" id= "btn_mode" > <input type= "submit" class = "btn btn-default btn-sm" value= "" > </div> </c:forEach> </form> |
action값은 동적으로 처리하기 위해 아무 값이 없다.
상황에 따라 제이쿼리 등으로 처리하면 된다.
예를들어,
param값으로 form 구분 해주면서..이렇게 처리하면 되겠다.
1 | $( '#form_value' ).attr( "action" , "/empUpdate" ); |
그럼, 컨트롤러 부분
1 2 3 4 5 6 7 8 | //직원 정보 수정 화면 @RequestMapping (value = "/updateForm" , method = RequestMethod.GET) public String updateForm(String empNo, Model model){ ArrayList<Emp> empDetail = empService.empDetail(empNo); model.addAttribute( "empDetail" , empDetail); return "/WEB-INF/updateForm.jsp" ; } |
이후, insert와 동일하게..
1 2 3 4 5 | @Override public void empUpdate(Emp emp){ EmpMapper empMapper = sqlSession.getMapper(EmpMapper. class ); empMapper.empUpdate(emp); } |
1 | public void empUpdate(Emp emp); |
1 2 3 4 5 | <update id= "empUpdate" parameterType= "java.lang.String" > UPDATE EMP SET ENAME = #{eName}, JOB = #{job}, HIREDATE = #{hireDate}, SAL = #{sal}, COMM = #{comm}, DEPTNO = #{deptNo} WHERE EMPNO = #{empNo} </update> |
이렇게 해주면 끝..
'Spring' 카테고리의 다른 글
jstl: fmt - 날짜 연산 (0) | 2017.06.30 |
---|---|
스프링 - jsp 한글 인코딩 (0) | 2016.11.14 |
Spring - mybatis 데이터 insert (0) | 2016.10.18 |
Spring - mybatis 데이터 delete (0) | 2016.10.17 |
Spring-mybatis 데이터 리스트 출력(c:foreach) (0) | 2016.10.17 |
최근에 올라온 글
최근에 달린 댓글
TAG
- fmt
- excel file download
- jquery filedownload
- bootstrap
- JQuery
- Spring
- setInterval
- InputStream
- opener
- mybatis
- jqGrid
- CDN
- multipart/form-data
- ColorPicker
- popup
- ssl
- 인코딩
- poi
- mouseleave
- mouseover
- return
- httpurlconnection
- c:foreach
- OutputStream
- trim
- mouseout
- 프로시저
- Each
- 제이쿼리
- mouseenter
- Total
- Today
- Yesterday