struts2学习笔记(四)基于xml的框架校验

本文介绍如何在Struts2框架中通过XML文件实现字段级验证,包括必填检查、长度限制及日期格式等,并探讨了字段校验与非字段校验的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5、框架验证,基于XML格式的验证

验证哪个action,就建立一个RegisterAction-validation.xml文件,在xml中引用

Field字段校验    validator非字段校验

RegisterAction-test-validation.xml对action里面的test()发放进行校验,但是仍会对RegisterAction-validation.xml进行全局校验,(建议不要使用全局的校验,对每个方法进行一个局部校验)

Field字段校验

 

<!DOCTYPE validators PUBLIC"-//OpenSymphony Group//XWork Validator 1.0.2//EN""http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">文件

 

<validators>

<!--     一个filed表示对一个属性进行校验 -->

    <field name ="username">

   <!--      一个field-validator表示对一个属性进行某种type方式的校验,查询 -->

  <!--  requiredstring表示必填 -->

        <field-validator type="requiredstring">

           <!-- trim表示将字符串两边的空格全部忽略 -->

            <param name="trim">true</param>

            <!-- message表示校验失败时,给用户的信息 -->

            <message>username should not be blank</message>

        </field-validator>

       

       <!-- stringLength表示验证输入长度 -->

        <field-validator type="stringlength">

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

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

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

        </field-validator>

       

    </field>

   

 <field name="age">

        <field-validator type="required">

            <message>age should not be blank!</message>

        </field-validator>

   

        <field-validator type="int">

            <param name="min">1</param>

            <param name="max">150</param>

            <message>age should be between ${min} and ${max}</message>

        </field-validator>

    </field>

   

    <field name="birthday">

        <field-validator type="required">

            <message>birthday should not be blank!</message>

        </field-validator>

       

        <field-validator type="date">

            <param name="min">2001-01-01</param>

            <param name="max">2003-12-31</param>

            <message>birthday should be between ${min} and ${max}</message>

        </field-validator>

    </field>

    </validators>

 

<s:fielderror cssStyle="color:red" />必须使用fielderrorjsp页面中

Requiredstring表示对字符串不能为空进行校验

当不是字符串的时候要用required进行空校验

重写public void validate() 和框架校验最好只写一个,避免对某个表单重复校验

非字段校验

<validatortype="requiredstring">

        <paramname="fieldName">username</param>

        <message>username should not beblank!</message>

    </validator>

   

    <validatortype="stringlength">

        <param name="fieldName">username</param>

        <paramname="minLength">6</param>

        <paramname="maxLength">10</param>

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

    </validator>

相对来说字段校验更加直观方便,最好不要混合使用,但是可以同时并存

1、真正存放field级别信息的对象是LinkedHashMap

2、该linkedhashmap的key是String类型的,value是ArrayList类型的

3、对于action级别的错误信息都是放在arraylist中

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值