struts2的输入校验框架及DTD文件配置

来源:互联网 发布:苹果电脑office软件 编辑:程序博客网 时间:2024/05/16 12:54

  struts2提供的校验有两种:一种是之前所提到的validate校验方法,另一种就是本篇所要讲的校验框架,通过有效的xml文件,实现不用编写代码,根据校验规则来对指定文件进行校验。

1.xwork-validation-1.0.2.dtd

<?xml version="1.0" encoding="UTF-8"?>

<!--

  XWork Validators DTD.

  Used the following DOCTYPE.

  

  <!DOCTYPE validators PUBLIC 

  "-//Apache Struts//XWork Validator 1.0.2//EN"

  "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">

-->

<!ELEMENT validators (field|validator)+>

<!ELEMENT field (field-validator+)>

<!ATTLIST field

name CDATA #REQUIRED

>

<!ELEMENT field-validator (param*, message)>

<!ATTLIST field-validator

type CDATA #REQUIRED

    short-circuit (true|false) "false"

>

<!ELEMENT validator (param*, message)>

<!ATTLIST validator

type CDATA #REQUIRED

    short-circuit (true|false) "false"

>

<!ELEMENT param (#PCDATA)>

<!ATTLIST param

    name CDATA #REQUIRED

>

<!ELEMENT message (#PCDATA)>

<!ATTLIST message

    key CDATA #IMPLIED

>

2.<!ELEMENT validators (field|validator)+> 表示框架验证有两种方式:

(1)字段优先校验(以action中的成员变量作为参照物,实施各种校验)

   RegisterAction-validation.xml:(与需要进行校验的action放置一起,命名规则要待验证action-validation)

   <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE validators PUBLIC

        "-//Apache Struts//XWork Validator 1.0.2//EN"

        "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">

<validators>

<field name="username">

<field-validator type="requiredstring">

<message>username can't be null</message>

</field-validator>

<field-validator type="stringlength">

<param name="minLength">4</param>

<param name="maxLength">6</param>

<message>username should be ${minLength} and ${maxLength}</message>

</field-validator>

</field>

</validators>

(2)校验器优先校验


     

(3)要想查阅各种type的类型,可以打开的default.xml

     

   而如果想查看校验器类型中的属性,可以跟进后面的class中,查看xwork原代码

  (4)两种校验框架校验方式可以混合使用,顺序不定。

 (5)Struts2框架校验执行的先后顺序: 

     1)  首先执行校验框架(xml文件) 

     2)  执行自定义方法的校验方法(validateMyExecute)

     3)  执行validate方法