hades

[Spring] BindingResult๋Š” ํ…œํ”Œ๋ฆฟ์— ์ „๋‹ฌ ๋ณธ๋ฌธ

๐Ÿƒ๐Ÿป‍โ™‚๏ธ ๊ธฐ๋ณธํ›ˆ๋ จ/Spring

[Spring] BindingResult๋Š” ํ…œํ”Œ๋ฆฟ์— ์ „๋‹ฌ

hades1 2024. 8. 21. 14:32

๐Ÿšจ ์—๋Ÿฌ

๋งจ ์œ„์˜ input์ธ ํ˜„์žฌ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š๊ฒŒ ์ž…๋ ฅํ•˜๊ณ , ๋ณ€๊ฒฝ ์‹œ Controller์—์„œ BindingResult์— ์—๋Ÿฌ๋ฅผ ๋”ํ•ด์„œ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ์‹ถ์—ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ, ๋ณ€๊ฒฝ ์‹œ์—๋Š” ์•„๋ฌด๋Ÿฐ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š”๋‹ค. ์™œ ์ด๋Ÿฐ ๊ฒƒ์ผ๊นŒ?

 

๐Ÿ” ๋ถ„์„

@PostMapping("/mypage/change")
public String changePassword(@Validated @ModelAttribute(name = "passwordDto") PasswordDto passwordDto, BindingResult bindingResult, HttpServletRequest request, Model model){
    HttpSession session = request.getSession();
    Member loginMember = (Member)session.getAttribute("LOGIN_MEMBER");

    loginMember = memberService.findMember(loginMember.getId());

    if (!(loginMember.getPassword().equals(passwordDto.getCurrentPassword()))){
        bindingResult.addError(new ObjectError("currentPassword", "ํ˜„์žฌ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์•„์š”."));
    }

    if (!bindingResult.hasErrors()){
        loginMember.setPassword(passwordDto.getNewPassword());
    }
    
    return "redirect:/member/mypage";
}

๊ทธ ์ด์œ ๋Š” bindingResult์— ์—๋Ÿฌ๊ฐ€ ์žˆ์„ ๋•Œ๋„ redirect๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. redirect๋ฅผ ํ†ตํ•ด ์ด๋™ํ•˜๋ฉด, bindingResult๊ฐ€ ์œ ์ง€๋˜์ง€ ์•Š๋Š”๋‹ค.

 

๐Ÿ‘Š ํ•ด๊ฒฐ

@PostMapping("/mypage/change")
public String changePassword(@Validated @ModelAttribute(name = "passwordDto") PasswordDto passwordDto, BindingResult bindingResult, HttpServletRequest request, Model model){
    HttpSession session = request.getSession();
    Member loginMember = (Member)session.getAttribute("LOGIN_MEMBER");

    loginMember = memberService.findMember(loginMember.getId());

    if (!(loginMember.getPassword().equals(passwordDto.getCurrentPassword()))){
        bindingResult.addError(new ObjectError("currentPassword", "ํ˜„์žฌ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์•„์š”."));
    }

    if (bindingResult.hasErrors()){
        model.addAttribute("member", loginMember);
        return "member/mypage";
    }
    loginMember.setPassword(passwordDto.getNewPassword());
    return "redirect:/member/mypage";
}

ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋ฐ”๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค.

 

์—๋Ÿฌ ๋ฉ”์„ธ์ง€๊ฐ€ ์ž˜ ๋ฐ˜์˜๋˜์–ด ๋‚˜ํƒ€๋‚œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.