[SPRING] Spring MVC 컨텍스트 외부에서 Spring Validator 사용
SPRINGSpring MVC 컨텍스트 외부에서 Spring Validator 사용
스프링 MVC (@Validate)에서 객체 및 주석을 뒷받침하는 유효성 검사기를 사용했습니다. 잘 돌아갔다.
이제는 Spring 매뉴얼에서 어떻게 작동하는지 정확히 이해하려고 노력하고 있습니다. 내 유효성 검사기를 "사용하는"방법에 대해서는 확실하지 않습니다.
내 유효성 검사기 :
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
import com.myartifact.geometry.Shape;
public class ShapeValidator implements Validator {
@SuppressWarnings("rawtypes")
public boolean supports(Class clazz) {
return Shape.class.equals(clazz);
}
public void validate(Object target, Errors errors) {
ValidationUtils.rejectIfEmpty(errors, "x", "x.empty");
ValidationUtils.rejectIfEmpty(errors, "y", "y.empty");
Shape shape = (Shape) target;
if (shape.getX() < 0) {
errors.rejectValue("x", "negativevalue");
} else if (shape.getY() < 0) {
errors.rejectValue("y", "negativevalue");
}
}
}
유효성 검사를 시도하는 Shape 클래스 :
public class Shape {
protected int x, y;
public Shape(int x, int y) {
this.x = x;
this.y = y;
}
public Shape() {}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
주요 방법 :
public class ShapeTest {
public static void main(String[] args) {
ShapeValidator sv = new ShapeValidator();
Shape shape = new Shape();
//How do I create an errors object?
sv.validate(shape, errors);
}
}
오류는 인터페이스 일 뿐이므로 일반 클래스처럼 실제로 인스턴스화 할 수 없습니다. 내 모양이 유효하거나 유효하지 않음을 확인하기 위해 유효성 검사기를 실제로 "어떻게"사용합니까?
참고로 x와 y가 없으므로이 모양은 유효하지 않습니다.
해결법
-
==============================
1.Spring이 org.springframework.validation.MapBindingResult를 제공하는 구현체를 사용하지 않는 이유는 무엇입니까?
Spring이 org.springframework.validation.MapBindingResult를 제공하는 구현체를 사용하지 않는 이유는 무엇입니까?
넌 할 수있어:
Map<String, String> map = new HashMap<String, String>(); MapBindingResult errors = new MapBindingResult(map, Shape.class.getName()); ShapeValidator sv = new ShapeValidator(); Shape shape = new Shape(); sv.validate(shape, errors); System.out.println(errors);
그러면 오류 메시지에있는 모든 내용이 인쇄됩니다.
행운을 빕니다
from https://stackoverflow.com/questions/9607491/using-spring-validator-outside-of-the-context-of-spring-mvc by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] POST 및 SPRING-MVC를 통해 여러 객체를 보내는 문제 (0) | 2019.04.06 |
---|---|
[SPRING] 스프링 보안의 최대 동시 사용자 (0) | 2019.04.06 |
[SPRING] Spring 3.2.4에서 XSS를 이스케이프 처리하는 @RequestBody가있는 @InitBinder (0) | 2019.04.06 |
[SPRING] Spring 데이터 Mongodb 저장소는 상속을 올바르게 구현하지 않습니다. (0) | 2019.04.06 |
[SPRING] 상수 또는 열거 형으로 매핑 값을 선언해야합니까? (0) | 2019.04.06 |