2015-11-27 26 views
1

我需要驗證POJO,而不是使用註釋@Valid作爲方法的參數。在Spring MVC中驗證POJO而不使用@Valid

我被困在這一點上:

ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); 
    Validator validator = factory.getValidator(); 
    Set<ConstraintViolation<Menu>> constraintViolations=validator.validate(menu); 
    //Menu is my Pojo 

    if (!constraintViolations.isEmpty()) { 
     Iterator itr = constraintViolations.iterator(); 
     while(itr.hasNext()){ 
      Object o = itr.next(); 
     }    
    } 

看來工作,因爲裏面的 「ITR」 我有這樣的東西::

oConstraintViolationImpl{interpolatedMessage='size must be between 3 and 50', propertyPath=titolo, rootBeanClass=class com.springgestioneerrori.model.Menu, messageTemplate='{javax.validation.constraints.Size.message}'}

現在,我的問題是, :我如何添加「itr」值BindingResult ???也許我應該投什麼......莫名其妙......

謝謝

回答

1
@Test 
public void testBindingResult(BindingResult result,Set<ConstraintViolation<String>> violations){ 
    for ( ConstraintViolation<String> constraintViolation : violations) { 
     ObjectError error=new ObjectError("object",constraintViolation.getMessage()); 
     result.addError(error); 
    } 
} 

你應該創建類型ObjectErrorhere的對象是彈簧DOC爲類,你應該把它添加到綁定的結果。

+0

謝謝你的男人,它的作品! :) – MDP