나의개발일지
계정 수정 본문
728x90
계정 수정
아이디와 비밀번호를 제외한 이름, 성별, 부서, 직책, 이메일, 전화번호를 새로 수정한다.
계정 수정 구현
1. JSP 페이지
<div class="modify_account_form">
<form action="<c:url value='/admin/member/modifyAccountConfirm' />" name="modify_account_form" method="post">
<input type="hidden" name="a_m_no" value="<%= loginedAdminMemberVo.getA_m_no() %>">
<input type="text" name="a_m_id" value="<%= loginedAdminMemberVo.getA_m_id() %>" readonly disabled> <br>
<input type="password" name="a_m_pw" value="******" readonly disabled> <br>
<input type="text" name="a_m_name" value="<%= loginedAdminMemberVo.getA_m_name() %>" placeholder="INPUT USER NAME."> <br>
<select name="a_m_gender">
<option value="">SELECET USER GENDER.</option>
<option value="M" <% if (loginedAdminMemberVo.getA_m_gender().equals("M")) {%> selected <%}%>>Man</option>
<option value="W" <% if (loginedAdminMemberVo.getA_m_gender().equals("W")) {%> selected <%}%>>Woman</option>
</select> <br>
<input type="text" name="a_m_part" value="<%= loginedAdminMemberVo.getA_m_part() %>" placeholder="INPUT USER PART." ><br>
<input type="text" name="a_m_position" value="<%= loginedAdminMemberVo.getA_m_position() %>" placeholder="INPUT USER POSITION." ><br>
<input type="email" name="a_m_mail" value="<%= loginedAdminMemberVo.getA_m_mail() %>" placeholder="INPUT USER MAIL." ><br>
<input type="text" name="a_m_phone" value="<%= loginedAdminMemberVo.getA_m_phone() %>" placeholder="INPUT USER PHONE."> <br>
<input type="button" value="modify account" onclick="modifyAccountForm();">
<input type="reset" value="reset">
</form>
</div>
JSP 페이지에서 세션값에 있는 정보를 불러와 표시하고 수정하는 페이지이다.
a_m_no값은 hidden타입으로 전송하고, id와 password는 readonly값을 주어서 수정불가능 하도록 구현한다.
modify_account_form.jsp 페이지에서 modify account버튼을 눌러서 submit을 하게 되면 해당 form태그 안에 있는 정보들이 컨트롤러로 넘어가게된다.
2. Controller
@GetMapping("/modifyAccountForm")
public String modifyAccountForm(HttpSession session) {
System.out.println("[AdminMemberController] modifyAccountForm()");
String nextPage = "admin/member/modify_account_form";
AdminMemberVo loginedAdminMemberVo =
(AdminMemberVo) session.getAttribute("loginedAdminMemberVo");
if (loginedAdminMemberVo == null)
nextPage = "redirect:/admin/member/loginForm";
return nextPage;
}
//계정 수정 확인
@PostMapping("/modifyAccountConfirm")
public String modifyAccountConfirm(AdminMemberVo adminMemberVo, HttpSession session) {
System.out.println("[AdminMemberController] modifyAccountConfirm()");
String nextPage = "admin/member/modify_account_ok";
int result = adminMemberService.modifyAccountConfirm(adminMemberVo);
if (result > 0) {
// 계정 수정 성공
AdminMemberVo loginedAdminMemberVo =
adminMemberService.getloginedAdminMemberVo(adminMemberVo.getA_m_no());
session.setAttribute("loginedAdminMemberVo", loginedAdminMemberVo);
session.setMaxInactiveInterval(60*30);
} else {
nextPage = "admin/member/modify_account_ng";
}
return nextPage;
}
admin home 에서 계정 수정 버튼이 눌르면 Controller로 modifyAccountForm신호가 들어오면 위의 JSP페이지인 modify_account_form.jsp페이지로 연결한다.
modifyAccountConfirm신호가 들어오게되면 계정 수정 결과를 서비스에 요청해서 result로 받는다.
result값이 0보다 크면 수정성공이고, 0이하이면 실패이다
3. Service
public int modifyAccountConfirm(AdminMemberVo adminMemberVo) {
System.out.println("[AdminMemberService] modifyAccountConfirm()");
return adminMemberDao.updateAdminAccount(adminMemberVo);
}
서비스 부분에서는 adminMemberVo값을 받아 Dao의 updateAdminAccount메서드를 실행후 반환값을 리턴한다.
4. DAO
public int updateAdminAccount(AdminMemberVo adminMemberVo) {
System.out.println("[AdminMemberDao] updateAdminAccount()");
String sql = "UPDATE tb1_admin_member SET a_m_name=?,"+
"a_m_gender=?, "+
"a_m_part=?, " +
"a_m_position=?, "+
"a_m_mail=?, "+
"a_m_phone=?, "+
"a_m_mod_date=NOW() "+
"WHERE a_m_no = ?";
int result = -1;
result = jdbcTemplate.update(sql,adminMemberVo.getA_m_name(),
adminMemberVo.getA_m_gender(),
adminMemberVo.getA_m_part(),
adminMemberVo.getA_m_position(),
adminMemberVo.getA_m_mail(),
adminMemberVo.getA_m_phone(),
adminMemberVo.getA_m_no());
return result;
}
Dao에서는 adminMemberVo 의 이름, 성별, 부서, 직책, 이메일, 휴대폰번호를 사번을 기준으로 찾아서 DB테이블에서 바꾸는 과정이다.
jdbcTemplate.update()문은 성공시 0보다 큰 양수을 반환하기 때문에 성공시 양수, 실패시 0 또는 -1를 반환한다.
728x90
반응형
'프로젝트 > 전자도서관 프로젝트' 카테고리의 다른 글
도서등록 (0) | 2024.01.07 |
---|---|
새 비밀번호 생성 with. e-mail (1) | 2024.01.07 |
로그인, 로그아웃 (0) | 2023.12.24 |
회원가입 (0) | 2023.11.21 |
개발환경 세팅 (0) | 2023.11.14 |