[SPRING] Spring 3 Validator가 모델의 모든 것을 검증하는 이유는 무엇입니까?
SPRINGSpring 3 Validator가 모델의 모든 것을 검증하는 이유는 무엇입니까?
나는 방법 중 하나에 대한 유효성 검사기가있는 스프링 3 컨트롤러가 있습니다. 모델의 모든 객체의 유효성을 검사합니다. 왜이 일을하는 이유나 내가 잘못한 일을 누군가에게 설명 할 수 있습니까?
문서에 따르면, 5.7.4.3 Spring MVC (http://static.springsource.org/spring/docs/3.0.0.RC3/spring-framework-reference/html/ch05s07)에서 사용하기 위해 JSR-303 Validator를 구성합니다. html)
예:
@Controller
public class WhaleController {
@Autowired
private Validator myValidator;
@Autowired
private WhaleService whaleService;
@InitBinder
protected void initBinder(WebDataBinder binder) {
binder.setValidator(this.myValidator);
}
@RequestMapping(value="/save-the-whales")
@Transactional
public void saveTheWhales(@Valid WhaleFormData formData, BindingResult errors, Model model) {
if (!errors.hasFieldErrors()) {
Whale whale = new Whale();
whale.setBreed( formData.getBreed() );
this.whaleService.saveWhale( whale );
model.addAttribute("whale", whale);
}
model.addAttribute("errors", errors.getFieldErrors());
}
}
그것을 실행하면 Whale이 myValidator (WhaleFormData의 유효성을 검사하도록 설정되어 있으며 그렇게 잘되어 있음)의 잘못된 대상이라고 불평 할 것입니다. Whale은 검증 제한, 주석 및 설정이없는 POJO입니다. 시행 착오를 통해 모델에 배치 된 모든 객체의 유효성 검사를 시도하고 유효성 검사기가 처리하지 못하면 실패합니다. 프리미티브는 훌륭합니다.
누구나 이것이 왜 적합한 지 알려주고, 적절한 문서로 안내하거나, 모델을 검증하지 않고 모델에 적용 할 수있는 가장 좋은 방법을 말해 줄 수 있습니까?
위의 경우 모델에 "고래"를 배치하고 싶습니다. 이제 내 고집 층에서받은 고유 한 WhaleId ()가 생깁니다.
감사!
해결법
-
==============================
1.나는이 행동이 문서에서 잘 다루어지지 않는다고 생각한다.
나는이 행동이 문서에서 잘 다루어지지 않는다고 생각한다.
문제는 다음과 같은 원인으로 발생합니다.
해결책은 @InitBinder의 범위를 특정 속성으로 제한하는 것입니다.
@InitBinder("whaleFormData") protected void initBinder(WebDataBinder binder) { ... }
from https://stackoverflow.com/questions/4715860/why-is-my-spring-3-validator-validating-everything-on-the-model by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] spring xml 설정에 환경 변수를 주입하는 방법은 무엇입니까? (0) | 2019.03.04 |
---|---|
[SPRING] org.springframework.cglib.core.ReflectUtils에 의한 불법적 인 접근을 방지하십시오 $ 1 (0) | 2019.03.04 |
[SPRING] 정적 메소드에서 스프링 빈 액세스 (0) | 2019.03.04 |
[SPRING] -Dlogback.configurationFile = spring-boot를 실행할 때 logback.xml이 무시됩니다. (0) | 2019.03.04 |
[SPRING] Spring 캐시가 @Cacheable 주석에 null 값을 캐시하지 않도록 알려면 어떻게합니까? (0) | 2019.03.04 |