Struts2 validator

来源:互联网 发布:办公软件相关书籍 编辑:程序博客网 时间:2024/05/29 13:44

一般struts2校验器有二种写法:


一、直接在Action里面继承ActionSupport,重写validatate()方法,为当前Action的全局校验器;或定义validate[Method Name]的方法,后台会在执行某Method前,利用反射机制,调用该Method的校验器。

校验器方法里面编写校验规则,一般用AddActionError("error Message") 或 AddFieldError(Filed name,"error Message")等两种方法。

他们的区别在:

AddActionError 底层由ArrayList<String>维护,也就说明每检验到一个错误,就将其存入到ArrayList中,对于每种错误结果,系统并不知道是对应哪个字段。

AddFieldError 底层由Map(String, ArrayList<String>) 维护,也就说明单一字段可以对应多个检测结果。

最后在该Action的当前目录下创建ActionName.properpies属性文件,配置对应字段在类型转换出错时的提示信息。

格式如下:invalid.fieldvalue.FiledName = "Filed Name convert error"



二、利用由Xwork底层为我们实现的校验框架,步骤如下:

1)直接在Action当前目录下创建名为 ActionName-validation.xml文件。

2)导入DTD规则文件:<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">

3)选择字段校验器或者非字段校验器

4)编写校验规则,由com.opensymphony.xwork2.validator.validators.default.xml提供的以下校验器

    <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>    <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>    <validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>    <validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>    <validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>    <validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>    <validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>    <validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>    <validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>    <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>    <validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/>    <validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>    <validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>    <validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>    <validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>    <validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>

原创粉丝点击