2013-03-09 33 views
0

所有約束衝突現場,我有以下領域:獲得使用javax.validation.Validator

@Size(min=1, max=64) 
@NotNull(message="may not be blank") 
private String name; 

我想哄驗證,給我所有違反約束。例如,當將名稱設置爲'空'時,我想要收到:「可能不是空白」和「大小必須介於1和64之間」

當前我只收到:「可能不是空白」

有關如何配置驗證引擎的任何提示?這裏是通過Spring我目前的配置:

<bean id="validator" 
    class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> 
    <property name="validationPropertyMap"> 
     <util:map> 
      <entry key="hibernate.validator.fail_fast" value="false" /> 
     </util:map> 
    </property> 
</bean> 

回答

0

Bean驗證規範建議治療null作爲有效值;所有內置約束如@Size都遵循該建議(當然,除了@NotNull),因此null值只會在您的情況下創建違反約束條件的@NotNull

我看到的這個需求的唯一解決方案是通過XML constraint mapping禁用內置約束的默認驗證器,並註冊處理null爲無效的自定義實現。

+0

感謝您的提示,儘管覆蓋內置約束似乎比額外的驗證消息更值得工作。 – 2013-03-09 23:49:31