- SignupRequestDto
package com.sparta.springauth.dto; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import lombok.Getter; import lombok.Setter; @Getter @Setter public class SignupRequestDto { @NotBlank private String username; @NotBlank private String password; @Email @NotBlank private String email; private boolean admin = false; private String adminToken = ""; }
- UserController : signup에
@Valid
적용@PostMapping("/user/signup") public String signup(@Valid SignupRequestDto requestDto) { userService.signup(requestDto); return "redirect:/api/user/login-page"; }
회원가입 진행 시 데이터 검증 시 오류가 발생했을 때 로그인 페이지가 아니라 회원가입 페이지로 이동하려면 Validation 예외를 처리해야함
BindingResult
@PostMapping("/user/signup")
public String signup(@Valid SignupRequestDto requestDto, BindingResult bindingResult) {
// Validation 예외처리
List<FieldError> fieldErrors = bindingResult.getFieldErrors();
if(fieldErrors.size() > 0) {
for (FieldError fieldError : bindingResult.getFieldErrors()) {
log.error(fieldError.getField() + " 필드 : " + fieldError.getDefaultMessage());
}
return "redirect:/api/user/signup";
}
userService.signup(requestDto);
return "redirect:/api/user/login-page";
}
bindingResult.getFieldErrors()
List<FieldError>
리스트를 가져옴