60. 스프링으로 마이페이지 만들기 (velog.io) 에서 만든 페이지의 값을 전송해 회원정보를 수정한다.
@RequestMapping(value = "/member/modify.kh", method = RequestMethod.POST)
public ModelAndView memberModify(
@ModelAttribute Member member,
@RequestParam("post") String post,
@RequestParam("address") String address,
ModelAndView mv //ModelAndView를 활용하여 return과 값전달코드 작성
) {
try {
member.setMemberAddress(post + "," + address);
int result = mService.modifyMember(member);
if (result == 1) {
mv.setViewName("redirect:/home.kh");
} else {
mv.addObject("msg","회원 수정 실패");
mv.setViewName("common/erroPage");
}
} catch (Exception e) {
mv.addObject("msg",e.getMessage());
mv.setViewName("common/erroPage");
}
return mv;
}
// return "redirect:/home.kh";
mv.setViewName("redirect:/home.kh");
// model.addAttribute("msg", "회원수정 실패");
// return "common/errorPage";
mv.addObject("msg","회원 수정 실패");
mv.setViewName("common/erroPage");
@Override
public int modifyMember(Member member) {
int result = mStore.updateMember(session, member);
return result;
}
@Override
public int updateMember(SqlSession session, Member member) {
int result = session.update("MemberMapper.updateMember",member);
return result;
}
<update id="updateMember" parameterType="Member">
<!-- paramaterType은 자동형변환돼서 쓸필요는 없다, 원래는 type의 클래스의 정확한 주소를 적어야 함 -->
update member_tbl set member_pwd = #{memberPw}, member_email=#{memberEmail}, member_phone =#{memberPhone}, member_addr=#{memberAddress}, update_date = default where member_id=#{memberId}
</update>