3

私はhibernate-validator-4.2.0.FinalとJSF2.1でBeanValidationを使用しています。ページを送信すると@NotEmpty, @NotNull、..は正しく機能しますが、注釈付きのメソッドが@AssertTrue呼び出されることはありません。

アクセス修飾子をpublicに変更し、名前をgetValidに変更しましたが、メソッドが呼び出されることはありません。

@AssertTrue(message = "test")
    private Boolean isValid() {
        return ....;
    }
4

2 に答える 2

1

JSF はValidator#validateを介して完全な Bean を検証するのではなく、フォーム フィールドごとにValidator#validateValueを呼び出します。これはisValidフォーム フィールドですか?

于 2013-03-15T09:55:59.747 に答える
0

問題は、すべてのフィールドが JSF によって検証されるわけではなく、facelet にあるフィールドのみが検証されることです。

私が電話したら

SomeObject so = new SomeObject();
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
        Set<ConstraintViolation<SomeObject>> violations = validator.validate(so);

テストでは、isValid メソッドがトリガーされます。

于 2013-03-14T14:22:17.560 に答える