Form
- 유효성 검사가 필요한 필드에 검증 어노테이션을 지정한다.
@Getter @Setter
public class PersonForm {
@NotNull
@Size(min=2, max=30)
private String name;
@NotNull
@Min(18)
private Integer age;
}
검증 어노테이션
@NotNull | Null 불가 |
@Null | Null만 입력 가능 |
@NotEmpty | Null, 빈 문자열 불가 |
@NotBlank | Null, 빈 문자열, 스페이스만 있는 문자열 불가 |
@Size(min=, max=) | 문자열, 배열등의 크기의 허용 범위 안에 있는지 |
@Patten(regex=) | 정규식을 만족하는지 |
@Max(), @Min() | 지정된 값보다 작은지, 큰지 |
@Future, @FutureOrPresent | 현재보다 미래인지, 현재 또는 미래인지 |
@Past, @PastOrPresent | 현재보다 과거인지, 과거 또는 미래인지 |
@Positive, @PositiveOrZero | 양수만 가능, 양수와 0 가능 |
@Negative, @NegativeOrZero | 음수만 가능, 음수와 0 가능 |
이메일 형식만 가능 | |
@Digits(integer=, fraction=) | 지정된 정수와 소수 자리수 보다 작은지 |
@DecimalMax(value=), @DecimalMin(value=) | 지정된 실수 이하인지, 이상인지 |
@AssertFalse, @AssertTrue | false 인지, true 인지 |
Controller
- 전달받은 Form 객체에 @Valid 어노테이션을 사용하면, 제약조건을 설정한 필드들에 대해서 유효성 검증을 수행한다.
- 이때 BindingResult 매개변수는 유효성 검사가 필요한 객체 바로 다음에 위치해야 하며, @Valid에 의해 오류 발생 여부와 오류가 발생한 값, 에러 코드등이 BindingResult에 바인딩된다.
@Controller
public class WebController implements WebMvcConfigurer {
@PostMapping("/")
public String checkPersonInfo(@ModelAttribute @Valid PersonForm personForm,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "form";
}
// 회원가입 처리 (생략)
return "redirect:/results";
}
}
'Spring > Spring MVC' 카테고리의 다른 글
뷰 컨트롤러 (0) | 2022.03.27 |
---|---|
컨트롤러 요청과 응답 (0) | 2022.03.05 |
서블릿, JSP, MVC 패턴 (0) | 2022.03.03 |
스프링 MVC 구조 (0) | 2022.01.23 |