0

Java プロジェクトでビジネス オブジェクトを検証するために OVal フレームワークを使用しています。検証クラスを参照してください:

    public class ObjectValidation implements ObjectValidatable {

    private IValidator validator;
    private Map<String, String> errorMessages;

    public ObjectValidation() {
        validator = new Validator();
    }

    public boolean isValid() {
        if (validate().size() > 0)
            return false;
        return true;
    }

    public List<ConstraintViolation> validate() {
        return validator.validate(this);
    }

    public Map<String, String> getErrorMessages()
    {
        if(this.isValid()) return null;
        errorMessages =  new HashMap<String, String>(); 

        for(ConstraintViolation cv : this.validate())       
            errorMessages.put(cv.???, cv.getMessage());

        return errorMessages;
    }
}

public class Account extends DomainObject {

    @NotNull
    @NotEmpty
    @NotBlank
    @Length(max = 5)
    private String userName; // How Get This ???


    private String password;
    private int securityId;
    private String securityAnswer;

        ...
     }

Map を返す getErrorMessages があります。このように返したいuserName-must not null

2 番目のセクション「null ではない」は cv.getMessage() で取得できます

しかし、検証アノテーションを持つ最初のセクションは私の質問です

検証アノテーションを持つuserName または別のフィールドを取得する方法???

4

1 に答える 1

0

ConstraintViolation.getCauses() と ConstraintViolation.getContext() メソッドを見てください。彼らはあなたが必要とするものを提供する必要があります。

于 2014-10-22T15:07:51.960 に答える