struts2框架的数据校验如何使用呢?

解决方案 »

  1.   

    struts2框架可以通过2种方式进行数据校验,一种是通过重写ActionSupport类的validate方法实现,第二种是通过定义配置文件实现。校验配置文件通过使用Struts 2已有的校验器,完成对表单域的校验。Struts 2提供了大量的数据校验器,包括表单域校验器和非表单域校验器两种。如果通过通过定义配置文件来实现的话,该配置文件的命名应该遵守如下规则:ActionName-validation.xml:其中ActionName就是需要校验的Action的类名。
    给一个例子,这个例子主要使用了requiredstring校验器,该校验器是一个必填校验器--指定某个表单域必须输入。
    <?xml version="1.0" encoding="GBK"?><!-- 指定校验规则文件的DTD信息 --><!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd"><!-- 校验规则定义文件的根元素 --><validators><!-- 校验第一个表单域:username --><field name="username"><!-- 该表单域必须填写 --><field-validator type="requiredstring"><!-- 如果校验失败,显示user.required对应的信息 --><message key="user.required"/></field-validator></field><!-- 校验第二个表单域:password --><field name="password"><field-validator type="requiredstring"><!-- 如果校验失败,显示pass.required对应的信息 --><message key="pass.required"/></field-validator></field></validators>
    该文件应该与Action类的class文件位于同一个路径下
      

  2.   

    <?xml version="1.0" encoding="GBK"?>
    <!-- 指定校验规则文件的DTD信息 -->
    <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
    <!-- 校验规则定义文件的根元素 -->
    <validators>
    <!-- 校验第一个表单域:username -->
    <field name="username">
    <!-- 该表单域必须填写 -->
    <field-validator type="requiredstring">
    <!-- 如果校验失败,显示user.required对应的信息 -->
    <message key="user.required"/>
    </field-validator>
    </field>
    <!-- 校验第二个表单域:password -->
    <field name="password">
    <field-validator type="requiredstring">
    <!-- 如果校验失败,显示pass.required对应的信息 -->
    <message key="pass.required"/>
    </field-validator>
    </field>
    </validators>
      

  3.   

    <?xml version="1.0" encoding="GBK"?>
    <!-- 指定校验规则文件的DTD信息 -->
    <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
    <!-- 校验规则定义文件的根元素 -->
    <validators>
    <!-- 校验第一个表单域:username -->
    <field name="username">
    <!-- 该表单域必须填写 -->
    <field-validator type="requiredstring">
    <!-- 如果校验失败,显示user.required对应的信息 -->
    <message key="user.required"/>
    </field-validator>
    </field>
    <!-- 校验第二个表单域:password -->
    <field name="password">
    <field-validator type="requiredstring">
    <!-- 如果校验失败,显示pass.required对应的信息 -->
    <message key="pass.required"/>
    </field-validator>
    </field>
    </validators>
      

  4.   

    另外 如果使用vlidator框架验证的时候 你的xml文件名要注意例如action: LoginAction.java
    那么你的xml文件名为:LoginAction-validation.xml