본문 바로가기
💻 뚝딱뚝딱/팀내도서대여시스템(OBRS)

[개발일지#011] 회원정보수정 수정하기

by 뚜루리 2024. 4. 11.
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