struts2 校验数据的有效性 2种方式

   Struts2的数据校验:

数据的校验分为客户端校验和服务器端两种:

客户端校验:JS完成的校验.(为了提升用户体验.减少用户的输入错误)

服务器端校验:在后台的校验.(必须的.)

手动编码进行校验:

1.编写一个Action,这个Action必须继承ActionSupport.

2.重写validate方法:---针对Action中的所有方法进行校验.

@Override

// Struts2提供的数据校验的方法:

public void validate() {

    if(username == null || username.trim().length() == 0){

        addFieldError("username", "用户名不能为空!");

    }

   

    if(password == null || password.trim().length() == 0){

        addFieldError("password", "密码不能为空!");

    }

}

 

***** 如果针对Action中的某一个方法校验呢?校验add方法.

* 编写方法 validateAdd();

 

 

使用XML配置校验方式:

1.编写一个Action继承ActionSupport

2.提供对应属性的get方法.---为了在XML中获得到变量的值.

3.在Action所在包下创建一个与Action类名相同的-validation.xml文件.

* 如XML的名称为:RegistAction2-validation.xml

* 引入DTD:xwork-core-2.3.7.jar/xwork-validator-1.0.3.dtd

* XML中的配置:

<validators>

<field name="username">

    <field-validator type="requiredstring">

        <message>用户名不能为空!(XML)</message>

    </field-validator>

</field>

 

<field name="password">

    <field-validator type="requiredstring">

        <message>密码不能为空!(XML)</message>

    </field-validator>

</field>

</validators>

 

***** 使用XML的校验方式如何针对某一个方法进行校验?

* 在Action所在的包下创建一个与Action类同名-方法对应的<action>的name-validation.xml

<action name=”regist2” class=”” method=”execute”>

创建的xml的名称为:RegistAction2-regist2-validation.xml

<validators>

<field name="password">

    <field-validator type="stringlength">

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

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

        <message>密码必须在6-12位之间!(XML)</message>

    </field-validator>

</field>

</validators>

 

 

综合练习:

<validators>

<field name="username">

    <field-validator type="requiredstring">

        <message>用户名不能为空!</message>

    </field-validator>

</field>

 

<!-- 校验密码 -->

<field name="password">

    <field-validator type="requiredstring">

        <message>密码不能为空!</message>

    </field-validator>

   

    <field-validator type="stringlength">

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

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

        <message>密码需要在6-12位之间</message>

    </field-validator>

</field>

 

<!-- 校验确认密码 -->

<field name="repassword">

    <field-validator type="fieldexpression">

        <param name="expression"><![CDATA[(password==repassword)]]></param>

        <message>两次密码输入不一致!</message>

    </field-validator>

</field>

 

<!-- 校验年龄 -->

<field name="age">

    <field-validator type="int">

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

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

        <message>年龄必须在18-60之间</message>

    </field-validator>

</field>

 

<!-- 生日 -->

<field name="birthday">

    <field-validator type="date">

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

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

        <message>生日需要在54-96年之间的</message>

    </field-validator>

</field>

 

<!-- 校验邮箱 -->

<field name="email">

    <field-validator type="email">

        <message>邮箱格式不正确</message>

    </field-validator>

</field>

 

<!-- 电话 -->

<field name="phone">

    <field-validator type="regex">

        <param name="expression"><![CDATA[^18\d{9}$]]></param>

        <message>手机号格式不正确!</message>

    </field-validator>

</field>

</validators>

转载于:https://my.oschina.net/jiemoxiaodi/blog/848270

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值