Struts2学习教程之输入校验示例详解

  

  

数据校验几乎是每个应用都要做的工作。用户输入的数据,发送到服务器端,天知道用户输入的数据是否是合法的,是否为恶意输入所。以一个健壮的应用系统必须对用户的输入进行校验,将非法的输入阻止在应用之外,防止这些非法的输入进入系统,从而保证系统的稳定性、安全性。

  

我们都知道,为了更好的用户体验,以及更高的效率,现在的网络应用都存在以下两重数据校验:

  
      <李>客户端数据校验李   <李>服务器端数据校验李   
  

对于客户端数据校验主要是通过JavaScript代码来完成;而对于服务器端数据校验是整个应用阻止非法数据的最后防线,主要通过在应用中编程实现。

  

Struts2框架为了减轻开发人员的工作量,提高工作效率,在数据校验这方面也下了很大功夫,那么Struts2是如何完成数据校验的呢?(由于Struts2框架的客户端校验能力较弱,不予总结,这篇文章主要总结Struts2框架的服务器端数据校验功能)

  

  

我们都知道数据校验都是一些繁琐的代码,为了从这些繁琐的代码中抽身出来,Struts2框架提供了基于配置文件的数据校验,只需要编写校验规则文件即可,校验规则文件指定每个表单域应该满足怎样的规则。

  

下面通过一个演示示例来说说Struts2框架的输入校验。

  

前台页面:

        & lt; body>   & lt;形式行动=暗锹肌狈椒?皃ost”比;   用户名:& lt; input type=" text " name="名称"/祝辞& lt;销售:fielderror fieldName=皀ame”/祝辞& lt; br>   密码:& lt;输入type="密码" name="密码"/祝辞& lt;销售:fielderror fieldName=懊苈搿?祝辞& lt; br>   年龄:& lt; input type=" text " name="年龄"/祝辞& lt;销售:fielderror字段名="年龄"/祝辞& lt; br>   生日:& lt; input type=" text " name="生日快乐"/祝辞& lt;销售:fielderror fieldName=吧铡?祝辞& lt; br>   & lt;输入类型="提交" value=" https://www.yisu.com/zixun/提交”/比;   & lt;/form>   & lt;/body>      

后台行动处理代码:

        公共类LoginAction ActionSupport延伸   {   私人字符串名称;   私人密码字符串;   私人int年龄;   私人生日日期;   私人字符串提示;      公共空间setName(字符串名称)   {   this.name=名称;   }      公共字符串getName ()   {   返回名称;   }      公共空间向setPassword(字符串密码)   {   这一点。密码=密码;   }      公共字符串getPassword ()   {   返回密码;   }      公共空间setAge (int年龄)   {   这一点。年龄=年龄;   }      公共int getAge ()   {   返回年龄;   }      公共空间setBirthday生日(日期)   {   这一点。生日=生日;   }      公共getBirthday日期()   {   返回的生日;   }      公共空间setTip(字符串提示)   {   这一点。提示=提示;   }      公共字符串getTip ()   {   返回提示;   }      公共字符串execute()抛出异常   {//这里简化了操作   返回成功;   }   }      

通过上面的行动代码可以看的到,我并没有为添加任何的字段校验代码,而我们只需要编写一个校验文件,如下:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; !——指定校验配置文件的DTD信息——比;   & lt; !DOCTYPE验证器公共”——//Apache Struts//1.0.2 XWork验证器//EN”   “http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd”在   & lt; !——校验文件的根元素——比;   & lt; validators>   & lt; !——校验行动的名称属性——比;   & lt;字段名="名称"比;   & lt; !——指定名称属性必须满足必填规则——比;   & lt;字段验证程序类型=皉equiredstring”比;   & lt;参数名称=靶藜簟弊4莟rue   & lt; message>必须填入名字& lt;/message>   & lt;/field-validator>   & lt; !——指定名称属性必须匹配正则表达式——比;   & lt;字段验证程序类型=罢虮泶锸健北?   & lt;参数name=" regexExpression祝辞& lt; ! [CDATA [(\ w{4} 25日)]]祝辞& lt;/param>   & lt; message>您输入的用户名只能是字母和数字,且长度必须在4到25之间& lt;/message>   & lt;/field-validator>   & lt;/field>      & lt; !行动——校验的密码属性——比;   & lt;字段名="密码"比;   & lt;字段验证程序类型=皉equiredstring”比;   & lt;参数名称=靶藜簟弊4莟rue

Struts2学习教程之输入校验示例详解