언어/JAVA
Servlet-JSP MVC07 파일 수정하기
now0204
2023. 7. 24. 21:23
- 파일 수정하기
- 파일 수정하기도 회원 가입시 첨부파일을 지정하는 것과 마찬가지로
- 파일 업로드하고 정보 수정 vs 파일 업로드 없이 정보 수정
- 파일 업로드하고 회원 정보 수정시
1. ajax로 먼저 파일을 업로드 시키고, 업로드 된 filename 콜백함수로 받아서
2. hidden타입 id= filename에 value를 return받은 filename으로 바꿔 둔 뒤에
3. 수정하기 누르면, 같이 넘어가도록 한다.
1. 뷰 쪽 수정
<input type="hidden" name="filename" value="" id="filename"/>
function update(){
if($("#file").val() != ''){
var formData = new FormData();
formData.append("file",$("input[name=file]")[0].files[0]);
$.ajax({
url : "<c:url value='/fileAdd.do'/>",
type : "post",
data : formData,
processData : false,
contentType : false,
success : function(data){
$("#filename").val(data);
document.form1.action="<c:url value='/memberUpdate.do'/>?mode=fUpdate";
document.form1.submit();
},
error : function(){alert("error");}
});
}else{
document.form1.action="<c:url value='/memberUpdate.do'/>?mode=Update";
document.form1.submit();
}
}
2. Update Controller 수정
public class MemberUpdateController implements Controller{
@Override
public String requestHandler(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String ctx=request.getContextPath();
int num=Integer.parseInt(request.getParameter("num"));
int age=Integer.parseInt(request.getParameter("age"));
String email=request.getParameter("email");
String phone=request.getParameter("phone");
MemberVO vo=new MemberVO();
if(request.getParameter("mode").equals("fUpdate")) {
String filename = request.getParameter("filename");
vo.setFilename(filename);
}
vo.setNum(num);
vo.setAge(age);
vo.setEmail(email);
vo.setPhone(phone);
MemberDAO dao=new MemberDAO();
int cnt = -1;
if(request.getParameter("mode").equals("fUpdate")) {
cnt=dao.memberUpdateFile(vo);
}else {
cnt=dao.memberUpdate(vo);
}
String nextPage=null;
if(cnt>0) {
// 수정성공
nextPage="redirect:"+ctx+"/memberList.do";
}else {
// 가입실패-> 예외객체를 만들어서 WAS에게 던지자.
throw new ServletException("not update");
}
return nextPage;
}
}
* 넘어온 mode에 따라 VO셋팅과 update쿼리를 다르게 발생시킨다.
3. DAO메서드 추가
public int memberUpdateFile(MemberVO vo) {
SqlSession session = sqlSessionFactory.openSession();
int cnt = session.update("memberUpdateFile",vo);
session.commit();
session.close();
return 0;
}
참고자료: 나프2탄(박매일) -인프런
https://www.inflearn.com/course/%EB%82%98%ED%94%84-mvc-2
[NarP Series] MVC 프레임워크는 내 손에 [나프2탄] - 인프런 | 강의
본 과정은 WEB MVC 프레임워크가 무엇이고 WEB MVC 프레임워크가 어떻게 변형이 되면서 Spring WEB MVC 프레임워크로 넘어가는지 TPC(생각하고-표현하고-코딩하고) 기법을 통해 단계적으로 학습하고 이
www.inflearn.com