【问题标题】:Prevent Struts 2 validation for specific action阻止特定操作的 Struts 2 验证
【发布时间】:2014-04-25 20:22:50
【问题描述】:

我在不同的动作类中有两个动作。 两个动作是:

  • 第一个操作(字段:电子邮件)
  • 第二次操作(字段:电子邮件、名字)

两者都使用User 对象来验证字段

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

并将User 类中的验证属性绑定为

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

现在的问题是它适用于 1st action(不包括 firstName 作为字段),对于包括 firstName 字段的第二个操作我提供

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

第一个动作停止工作,可能是要搜索不存在的firstName

那么,如何使firstName 的验证仅针对第二个操作进行? (不适用于第一次行动)

【问题讨论】:

标签: java validation struts2 annotations struts2-interceptors


【解决方案1】:

将以下参数添加到操作配置中,这样可以防止在其他操作/方法上运行验证器,而不是在被调用的操作/方法上运行。

interceptorRefs = @InterceptorRef(value="defaultStack", params = {"validation.validateAnnotatedMethodOnly", "true"})

【讨论】:

  • 不工作..我试过这两个动作一个接一个地同时进行
  • struts 2.3.16版
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-23
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 2023-03-28
  • 1970-01-01
相关资源
最近更新 更多