Struts验证框架

    在最开始使用Struts验证框架的时候,仅仅只使用到了其中的一小部分,也是很基础的一些验证,并没有完全发挥它的作用,其实struts验证框架远不止如此。所以在此总结一下自己对Struts验证框架的一些应用技巧。如果用好了,它的功能是非常强大的。
    先说一下版本吧,建议大家使用Struts1.2的版本,因为它的功能最强,也最稳定。我使用的IDE环境:Eclipse3.2.1+MyEclipse5.1.0。有了环境就开始吧!
    首先,我们说一下validwhen验证规则。它的作用是根据自定义表达式来判断用户输入的数据的合法性,是requiredif规则的升级版。它在struts1.2版本里面才有。用这个规则可以判断两个输入域是否相等。

    上面这一段,就是在validation.xml文件中描述了validwhen的使用方法。判断password1和password2这两个域的值是否相等。*this* 代表了当前域,password1代表了上面的那个域。msg描述了错误信息。arg描述了在错误信息中使用的两个参数。

    再说一下在Struts中如何使用正则表达式来验证数据吧。它可以把正则表达式的灵活性充分的发挥在validator框架中,所以它会经常被使用到。在validator框架中是通过mask验证规则来实现正则表达式的判断的。

    在上面的配置中,通过mask变量来执行验证时所使用的正则表达式。关于正则表达式的规则在此不做解释,读者可以自己寻找一些相关文章了解。在上面的这个例子中,我们定义了一个规则就是,值必须是整数且长度是15位或18位。还有一点需要注意的是,如果没有定义msg,也就是错误信息,那么将会使用mask规则默认的错误提示信息。

    最后来说一下如何自定义验证规则吧。

    首先需要自定义一个类,在这个类中定义一个静态的返回布尔值的方法,这个方法的作用是提供验证规则的业务逻辑。

    在这个方法中,参数是可以根据你的需要来定义的。其中

    Field代表的是validation.xml文件中的<field>标记

    HttpServletRequest表示请求

    ActionMessages表示错误信息的集合

    Resources表示资源文件

    在这里我们是从请求里面取 密码1 的值,从被验证的字段里取密码2,然后比较两个字段的值。如果不一样就想错误信息的集合里添加错误信息。错误信息又是从资源文件中去取的。

    这里可以有许多的类供我们使用的,例如:GenericTypeValidator和GenericValidator,他们提供了许多现成的验证方法。

    然后就需要在validator-rules.xml文件中部署这个验证类了。

    其中methodParams指定了方法的参数,它必须和我们定义的方法中指定的参数相同,位子也必须一样。name指定了该验证规则的名字,classname指定了验证类所在的包,msg指定了错误信息,method指定了该验证规则使用的哪一个验证方法。

    然后我们就可以在validation.xml文件中使用该验证规则了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值