Struts2框架后台数据校验方法

对于表单提交的数据,除了前端进行验证之外,还可以通过后台来进行验证,但是后台验证方法没有前端响应及时,而且后台数据验证会使数据经过层层网关然后返回,所以不推荐使用,但是可以作为辅助,防止脏数据进入数据库.Struts2提供了该方法
使用此验证方法需要在struts.xml相关的action表现下配
<result name="input">/login.jsp</result> 标签
校验顺序为针对性校验方法==>validate()方法==>框架验证==>目标方法

  1. 通用方法验证,即该Action类中的所有方法都会通过该验证方法.
    在Action类中重写ActionSupport父类中的validate()方法,并在此方法内进行逻辑判断

  2. 单个方法验证,即指向Action类中的某个方法,只有使用该方法前才会调用该验证方法
    在该Action类中创建validateXxx()方法,其中Xxx为要验证的方法名首字母大写,this.addFieldError为添加提示信息

 public void validateLogin(){
   	System.out.println("++++++++方法验证+++++++");
   	if(user.getName().trim().length()==0){
   		this.addFieldError("name", "用户名不能为空!");
   	}
   	if(user.getPassword().trim().length()==0){
   		this.addFieldError("name", "密码不能为空!");
   	}
   }

在前端页面接收错误信息时使用

<s:fielderror fieldName="name"></s:fielderror> 
<s:fielderror fieldName="password"></s:fielderror> 

接收,其中key值为addFieldError时命名的key值
3. 利用Struts2验证框架进行验证
引用框架验证前需要在struts.xml文件的action标签中引入默认拦截器栈
<interceptor-ref name="defaultStack"></interceptor-ref>此方法主要是为了引入
<interceptor-ref name="validation"> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref>拦截器
特点:相比于验证方法,无需在Action类中编写验证方法进行判断,验证主要靠xml配置文件来实现验证逻辑的设定
1. 验证框架作用于action类的所有方法
在action同级目录下创建Action类名-validation.xml文件,在其中配置验证的信息

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
  <message>用户名不能为空!!!</message>
</field-validator>
</field>
</validators>

在前端页面接收错误信息时使用

<s:fielderror fieldName="name"></s:fielderror> 

接收,其中key值为<field name="name">中的name值;
2. 针对于Action类中方法
在action同级目录下创建Action类名-Struts.xml中action中的name值-validation.xml文件,其中配置验证的信息
(1)
框架验证的其他验证方法请参考下一篇

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值