로그인 페이지에서 아이디 또는 패스워드만 입력했을 때 각각의 필드에 공백일 수 없습니다
메시지와 로그인 실패 메시지인 아이디 또는 비밀번호가 맞지 않습니다.
가 동시에 보인다.
없음.
LoginController.java
@Controller
@RequiredArgsConstructor
public class LoginController {
private final LoginService loginService;
@PostMapping("/auth/login.do")
public String login(@Validated @ModelAttribute LoginForm loginForm, BindingResult bindingResult, HttpServletRequest req, Model model) {
// 로그인 폼 입력을 바탕으로 회원 찾기
MemberDto memberDto = loginService.login(loginForm);
// 로그인 실패 -> ObjectError 추가
if (memberDto == null) {
bindingResult.reject("loginFail", Message.ID_OR_PWD_IS_WRONG.getDescription());
}
// 로그인 폼 입력이 잘못된 경우
if (bindingResult.hasErrors()) {
return "auth/login";
}
@Controller
@RequiredArgsConstructor
public class LoginController {
private final LoginService loginService;
@PostMapping("/auth/login.do")
public String login(@Validated @ModelAttribute LoginForm loginForm, BindingResult bindingResult, HttpServletRequest req, Model model) {
// 로그인 폼 입력이 잘못된 경우
if (bindingResult.hasErrors()) {
return "auth/login";
}
// 로그인 폼 입력을 바탕으로 회원 찾기
MemberDto memberDto = loginService.login(loginForm);
// 로그인 실패 -> ObjectError 추가, 로그인 페이지를 다시 보여줌
if (memberDto == null) {
bindingResult.reject("loginFail", Message.ID_OR_PWD_IS_WRONG.getDescription());
return "auth/login";
}
애초에 로그인 폼의 입력이 잘못된 경우 그 이후 단계가 진행되지 못하도록 bindingResult
에 에러가 있는 경우 로그인 페이지를 다시 보여주는 부분의 위치를 변경해준다. 로그인 실패 시에 로그인 페이지를 다시 보여주는 부분도 추가한다.