1

異なるアクション クラスに 2 つのアクションがあります。2 つのアクションは次のとおりです。

  • 最初のアクション (フィールド: メール)
  • 2 番目のアクション (フィールド: email、firstName)

どちらもUserオブジェクトを使用してフィールドを検証しています

@VisitorFieldValidator(appendPrefix = false)
    public User getUser() {
        return user;
    }

Userクラスの検証プロパティを次のようにバインドします

@RequiredStringValidator(key="global.emptyemail")
    @EmailValidator(key="global.invalidemail")
    public String getEmail() {
        return email;
    }

今問題は、私が提供したフィールドを含む2番目のアクションに対して1st action(フィールドとして含まれていない)、正常に機能することですfirstNamefirstName

@RequiredStringValidator(key="global.firstNameRequired", fieldName = "firstName")
    @RegexFieldValidator(type=ValidatorType.FIELD, key="global.SpecialCharacter",
            regexExpression = "[^&%$#@!~]*", fieldName = "firstName")
    public String getFirstName() {
        return firstName;
    }

この最初のアクションが機能しなくなったため、firstName存在しないものを検索する可能性があります

firstNameでは、 2番目のアクションに対してのみ検証を行うにはどうすればよいですか? (最初のアクションではありません)

4

1 に答える 1

0

次のパラメーターをアクション構成に追加します。これにより、呼び出されたものではなく、他のアクション/メソッドでバリデーターを実行することを防ぐことができます。

interceptorRefs = @InterceptorRef(value="defaultStack", params = {"validation.validateAnnotatedMethodOnly", "true"})
于 2014-03-19T19:48:22.517 に答える