https://itsmesunky.tistory.com/51
[Spring]회원 관리 페이지 만들기(회원 리스트, 회원 정보 보기)
오늘은 회원 관리단에 속하는 회원 리스트와, 회원 정보 보기에 해당하는 페이지를 만들어 보았다. 회원 리스트는 관리자만 볼 수 있는 페이지이므로 회원 관리 버튼은 관리자만 볼 수 있게 설
itsmesunky.tistory.com
지난 포스팅에 이어, 회원 정보를 변경하는 코드를 짜본것을 토대로 정리해보려고 한다.
관리자만 할 수 있는 등급 변경 / 회원 상태 변경을 해보자.
( 그 외의 일반 회원이 하는 정보 수정, 회원 탈퇴, 비밀번호 변경은 다른 블로그를 참고해주세요.)
위에 링크를 걸어놓은 전 포스트를 보면 화면 보기에 해당하는 view.jsp에서 등급변경과 상태변경이 가능하도록 했다.
<!-- 관리자 메뉴 : 관리자 & 넘어오는 ID가 있다. & 넘어오는 ID가 관리자가 아니다. -->
<c:if test="${login.gradeNo == 9 && !empty param.id && login.id != vo.id}">
<!-- 상태 변경 -->
<form action="changeStatus.do" method="post">
<input type="hidden" name="id" value="${vo.id }">
<input type="hidden" name="page" value="${param.page }">
<input type="hidden" name="perPageNum" value="${param.perPageNum }">
<div class="input-group">
<select name="status" class="form-control">
<option ${(vo.status == "정상")?"selected":"" }>정상</option>
<option ${(vo.status == "탈퇴")?"selected":"" }>탈퇴</option>
<option ${(vo.status == "강퇴")?"selected":"" }>강퇴</option>
<option ${(vo.status == "휴면")?"selected":"" }>휴면</option>
</select>
<div class="input-group-btn">
<button class="btn btn-default">변경</button>
</div>
</div>
</form>
<!-- 등급 변경 -->
<form action="changeGradeNo.do" method="post">
<input type="hidden" name="id" value="${vo.id }">
<input type="hidden" name="page" value="${param.page }">
<input type="hidden" name="perPageNum" value="${param.perPageNum }">
<div class="input-group">
<select name="gradeNo" class="form-control">
<option ${(vo.gradeNo == "1")?"selected":"" } value="1">일반회원</option>
<option ${(vo.gradeNo == "9")?"selected":"" } value="9">관리자</option>
</select>
<div class="input-group-btn">
<button class="btn btn-default">변경</button>
</div>
</div>
</form>
</c:if>
나는 Controller에서 Mapping 시켜놓은 URL은 무조건 JSP로 하나씩 존재해야 하는줄 알았는데
그게 아니라 어떤 JSP안에 form action으로 되어 있어도 Mapping이 되더라.
위의 코드를 참고해보면, 상태 변경과 등급 변경의 form action에 URL을 넣어놨다.
이걸 참고로 Controller에서 코드를 작성해준다.
<MemberController>
// 상태 변경
@PostMapping("/changeStatus.do")
public String changeStatus(PageObject pageObject, MemberVO vo) throws Exception{
// DB에서 상태 변경을 한다.
service.changeStatus(vo);
return "redirect:view.do?id=" + vo.getId() + "&page=" + pageObject.getPage() + "&perPageNum=" + pageObject.getPerPageNum();
}
// 등급 변경
@PostMapping("/changeGradeNo.do")
public String changeGradeNo(PageObject pageObject, MemberVO vo) throws Exception{
// DB에서 상태 변경을 한다.
service.changeGradeNo(vo);
return "redirect:view.do?id=" + vo.getId() + "&page=" + pageObject.getPage() + "&perPageNum=" + pageObject.getPerPageNum();
}
파라메터로 뭘 받아야 하는지 잘 생각해보고 메소드를 작성하고 return 값도 잘 생각해서 작성해야 한다. (어렵다)
정보를 굳이 주소창에 넘길 필요가 없으니 PostMapping으로 진행한다.
<MemberMapper.xml>
<!-- 상태 변경 -->
<update id="changeStatus">
update member
set status = #{status}
where id = #{id}
</update>
<!-- 등급 변경 -->
<update id="changeGradeNo">
update member
set gradeNo = #{gradeNo}
where id = #{id}
</update>
데이터 수정에 속하는 작업이므로 update 태그를 이용해 쿼리를 작성했다.
<MemberMapper.java>
// 9. 상태 변경
public int changeStatus(MemberVO vo) throws Exception;
// 10. 등급 변경
public int changeGradeNo(MemberVO vo) throws Exception;
xml 파일의 태그 id와 메소드명을 잘 맞춰서 작성한다.
코드를 잘 완성했다면
회원 정보 보기 페이지에서 회원 상태와 등급을 풀 다운 메뉴로 변경할 수 있는것을 확인할 수 있다.
'BACK-END > SPRING' 카테고리의 다른 글
[SPRING] 스프링 설치 및 프로젝트 설정 (0) | 2023.02.20 |
---|---|
Ajax (0) | 2022.05.24 |
[Spring]회원 관리 페이지 만들기(회원 리스트, 회원 정보 보기) (0) | 2022.03.16 |
[Spring-JS]데이터 변경 시 Confirm이벤트 처리 (0) | 2022.03.15 |
[Spring]예외처리(404에러, 500에러) (0) | 2022.03.15 |
댓글