struts2从零开始(五)

知识点: struts2中的输入校验
1、action继承ActionSupport 复写validate方法,但是这样子在页面上调用action中的任何一个方法都会调用该validate方法,所以不推荐
2、同样是action继承ActionSupport 但是不复写validate方法,直接写一个页面上所要调用的方法的校验方法 validateXxx方法。
3、资源文件配置方式实现校验


1、1action中的代码如下:
 @Override
public void validate() {
if(users.getUname()==null||users.getUname().length()<3||users.getUname().length()>15){
this.addFieldError("users.uname", "密码长度必须在3-15");
}
super.validate();
}


1.2自定义校验方法的代码如下:
 public void validateExecute() {
if(users.getUname()==null||users.getUname().length()<3||users.getUname().length()>15){
this.addFieldError("users.uname", "密码长度必须在3-15");
}

}


1.3、局部资源文件(利用配置资源文件完成校验)
1.3.1、在web下面新建一个RegisterAction-validation.xml文件,这里用来配置需要校验的字段信息(代码如下)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="users.uname">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>用户名不能为空</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">3</param>
<param name="maxLength">15</param>
<message>用户名必须在${minLength}-${maxLength}之间</message>
</field-validator>
</field>

<field name="users.upass">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>密码不能为空</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">15</param>
<message>密码必须在${minLength}-${maxLength}之间</message>
</field-validator>
</field>

<field name="users.reupass">
<field-validator type="fieldexpression">
<param name="expression">users.upass==users.reupass</param>
<message>两次密码不一致</message>
</field-validator>
</field>

<field name="users.age">
<field-validator type="required" short-circuit="true">
<message>年龄不能为空</message>
</field-validator>
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>年龄应该在${min}-${max}之间</message>
</field-validator>
</field>

<field name="users.birthday">
<field-validator type="required" short-circuit="true">
<message>生日不能为空</message>
</field-validator>
<field-validator type="date">
<param name="min">1900-01-01</param>
<param name="max">2050-01-01</param>
<message>生日应该在${min}-${max}之间</message>
</field-validator>
</field>

<field name="users.graduation">
<field-validator type="required" short-circuit="true">
<message>毕业时间不能为空</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression">users.birthday<users.graduation</param>
<message>毕业时间应该大于生日</message>
</field-validator>
</field>

<field name="users.email">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>邮箱必填</message>
</field-validator>
<field-validator type="email">
<message key="invalid.email"></message>
</field-validator>
</field>
</validators>


1.3.2、目录结构(比较重要的是局部资源文件的命名模式)

[img]http://dl.iteye.com/upload/attachment/0079/2633/1729a2bb-7e2a-3569-ae50-52589c01e51c.png[/img]

1.3.3、局部资源文件中的类容

[img]http://dl.iteye.com/upload/attachment/0079/2636/e6b11afe-686d-3c43-a3d4-20ed40c66b40.png[/img]

[img]http://dl.iteye.com/upload/attachment/0079/2638/c55b056f-f897-355a-849a-f7923c0bed6b.png[/img]

值得注意的是:1、struts2的配置文件相当多,所以它的命名规则需要遵守,最好的学习方式就是模仿。
2、利用框架实现输入校验能完成一些js校验所不能完成的事情,但是也不能滥用,否则会增加服务器的压力。合理的做法是前台验证和后台验证相结合。

源码下载请点这里:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值