0

次のフィールドがあります。

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

すべての制約違反を私に与えるために、検証をうまくやりたいと思います。たとえば、name を 'null' に設定すると、次のメッセージが返されます。

現在、「空白ではない可能性があります」のみが表示されます

検証エンジンの設定方法に関するヒントはありますか? 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>
4

1 に答える 1

0

nullBean Validation 仕様では、有効な値として扱うことを推奨しています。などのすべての組み込みの制約@Sizeは、その推奨事項に従います (もちろん例外@NotNullがあります)。したがって、値は、この場合の制約に対するnull違反のみを作成します。@NotNull

この要件の唯一の解決策は、XML 制約マッピングを介して組み込み制約のデフォルトのバリデーターを無効にし、無効として処理するカスタム実装を登録することnullです。

于 2013-03-09T20:14:00.223 に答える