validation - Struts 2 在操作中手动调用自定义验证

标签 validation struts2

我们使用 Struts 2 验证和大量自定义验证来验证我们的表单。

@Validations( 
    customValidators =      
           { @CustomValidator(type = "AccountFormat", fieldName = "accountNo") }
)

我们还可以通过重写验证方法来手动验证表单

public void validate() {
    //Username can't be blank
    if(username.equals("")) {
        addFieldError("username", "The Username can't be empty");
    }

是否可以在 validate() 中调用自定义验证

为什么我们需要它?! 所有验证规则都包含在自定义验证中,这是完美的。有一些表格需要自己的手动验证。我们最终也在这些手动验证表单中剪切并粘贴了一些自定义验证规则,如果我们可以在此处调用验证,那就最好了

最佳答案

当然,您可以创建自定义验证器的实例,设置所需的属性(字段名称、值堆栈等)并调用 validate 方法...

但这不是处理此类情况的最佳方法。如果您需要验证操作上下文之外的值(例如在某些 Web 服务中),您将做什么?

更好的解决方案是将验证逻辑从自定义验证器提取到某个单独的类,您可以从代码中的任何位置调用该类,并将 Struts2 自定义验证器编写为调用该类的包装器。

关于validation - Struts 2 在操作中手动调用自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29603916/

相关文章:

regex - 如何在angularJs中使用ng-pattern验证十进制不?

c# - 在 Validation Context 中获取子属性中的父对象属性值

javascript - 使用 ng-pattern 验证纬度和经度值

struts2 - 具有范围的struts 2迭代器

java - 如何使用 Struts 2 在 JSP 中编写 UTF-8 符号

struts2 - 如何在 Struts 标签中添加注释?

validation - ValidationSet 上的 Powershell 自动完成

validation - 输入文件只接受文本/vtt mime 类型

java - 标签 'select' ,字段 'list' ,名称 'uuid' : The requested list key 'deptList' could not be resolved as a collection/array/map/enumeration/iterator type

mysql - 无法将数据插入我的数据库