struts2中 validation 指定validate过滤方法

 

使用struts2.0, 在用到struts2.0中的validation框架时,当为一个Action指定Actionname-validation.xml验证规则 后,validation interceptor会为该Action中的每个方法都执行validation,很郁闷,找了好多资料,终于找到了解决的方法。。

(1)有一种解决方法是为其余不需要进行验证的方法加上annotation,即在方法前加上@SkipValidation。

(2)另一种方法是为Action中的指定方法指定一个验证规则,命名为Actionname-alias-validation.xml。

如mailreader的例子中,struts中的配置如下:

xml 代码
  1. < package   name = "subscription"   namespace = "/"   extends = "mailreader-support" >   
  2.   
  3.          < global-results >   
  4.              < result   name = "input" > /Subscription.jsp result >   
  5.              < result   type = "redirect-action" > Registration_input result >   
  6.         < global-results >   
  7.   
  8.          < action   name = "Subscription_save"   method = "save"   class = "mailreader2.Subscription" >   
  9.              < interceptor-ref   name = "user-submit"   />   
  10.         < action >   
  11.   
  12.          < action   name = "Subscription_*"   method = "{1}"   class = "mailreader2.Subscription"   />   
  13.   
  14.     < package >   

然后在mailreader2包下有一个Subscription类,及一个Subscription-Subscription_save-validation.xml 文件,还有一个Subscription-validation.xml 文件。

注意:Subscription_save是在struts 中定义的action的name,在struts中还要指定Subscription_save所对应的方法。

(3)还有一种方法,也是最简单的方法就是如下配置:

xml 代码
  1. < package   name = "subscription"   namespace = "/"   extends = "mailreader-support" >       
  2.       
  3.          < global-results >       
  4.              < result   name = "input" > /Subscription.jspresult >       
  5.              < result   type = "redirect-action" > Registration_inputresult >       
  6.          < global-results >       
  7.       
  8.          < action   name = "Subscription"   class = "mailreader2.Subscription" >       
  9.                < interceptor-ref   name = "defaultStack" >   
  10.                   < param   name = "validation.excludeMethods" > * param >   
  11.                   < param   name = "validation.includeMethods" > 需要验证的方法名称,以逗号分隔 param >   
  12.              interceptor-ref >   
  13.          < action >       
  14.      < package >   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值