728x90
320x100
회원정보수정 페이지가 이미 존재하고 기능이 구현되어 있으나 사용자의 사용에 가깝게 수정해보도록한다.
[개발목표]
1. 회원정보수정 수정하기
[구현화면]
- 회원정보를 수정하려면 아이디와 비밀번호을 한번 더 입력해야 하며 아이디와 비밀번호가 일치할 경우에만 회원 정보 수정 페이지로 이동할 수 있다.
- 회원정보 수정페이지에서는 아이디를 제외한 이름과 비밀번호만 수정이 가능하다.
- 비밀번호는 비밀번호 확인 입력까지 완료해야 저장이 가능하다.
회원정보수정 페이지는 이미 구현했지만 형태를 변경 + 가입시 스크립트 그대로 사용 하였고
로그인 확인 페이지 역시 로그인 화면에서 그대로 가져와서 사용한 거라 이번에는 컨트롤러만 톧아보기로 한다.
사실 컨트롤러도...로그인 컨트롤러와 거의 흡사하긴 함.
MemberController.java
package seulgi.bookRentalSystem.web.member;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import seulgi.bookRentalSystem.domain.login.LoginForm;
import seulgi.bookRentalSystem.domain.login.LoginService;
import seulgi.bookRentalSystem.domain.member.Member;
import seulgi.bookRentalSystem.domain.member.MemberServiceImpl;
import seulgi.bookRentalSystem.domain.member.UpdateForm;
import seulgi.bookRentalSystem.web.login.SessionConst;
import java.util.List;
@Controller
@RequiredArgsConstructor
@RequestMapping("/member")
public class MemberController {
private final MemberServiceImpl memberService;
private final LoginService loginService;
/**
* 로그인 체크 폼
* @return
*/
@GetMapping("/{memberId}/checkPassword")
public String checkPasswordForm(@ModelAttribute("loginForm")LoginForm loginForm) {
return "member/checkPassword";
}
/**
* 로그인 체크
* @param form
* @param bindingResult
* @param model
* @return
*/
@PostMapping("/{memberId}/checkPassword")
public String checkPassword(@Valid @ModelAttribute LoginForm form
, BindingResult bindingResult
, Model model) {
if (bindingResult.hasErrors()) {
return "member/checkPassword";
}
Member loginMember = loginService.login(form.getLoginId(), form.getPassword());
if (loginMember == null) {
bindingResult.reject("loginFail", "아이디 또는 비밀번호가 맞지 않습니다.");
return "member/checkPassword";
}
Member member = memberService.findById(form.getLoginId());
model.addAttribute("member", member);
return "member/editForm";
}
}
이 내용을 회원정보 수정에 포함된 기능이라 멤버컨트롤러에 넣었는데 loginService를 사용하기 때문에 LoginController에 넣었어야 하나 하는 고민은 든다.
728x90
320x100
'💻 뚝딱뚝딱 > 팀내도서대여시스템(OBRS)' 카테고리의 다른 글
[개발일지#012] AWS(아마존 웹 서비스) 회원가입 하기 (0) | 2024.06.04 |
---|---|
[팀내도서대여시스템(OBRS) Ver.1)] 개발완료 보고 및 기능소개 / Ver2 개발예정인 기능 (0) | 2024.04.11 |
[개발일지#010] 페이지네이션 적용하기 (회원목록 / 나의책 / 빌린책 / 모든책) (0) | 2024.04.11 |
[개발일지#009] 로그인 / 로그아웃 / 회원가입 수정 및 구현 (0) | 2024.04.10 |
[개발일지#008] 나의책 / 빌린책 기능 구현 (0) | 2024.04.09 |