读书人

在struts2.0中对指定步骤进行validati

发布时间: 2012-11-17 11:14:15 作者: rapoo

在struts2.0中对指定方法进行validation验证

最近公司项目使用struts2.0, 在用到struts2.0中的validation框架时,当为一个Action指定Actionname-validation.xml验证规则后,validation interceptor会为该Action中的每个方法都执行validation,这样很烦。

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

(2)另一种方法是今天在mailing list中看到的,为Action中的指定方法指定一个验证规则,命名为Actionname-alias-validation.xml,在struts2.0自带的mailreader例子中有使用,可以参考。

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

      <result name="input">photo_detail?pid=${pid}</result>
      <result type="redirect-action">photo_detail?pid=${pid}</result>
      </action>

      我定义了一个DetailAction-add-validation.xml文件来对输入的评论进行验证.如果验证失败返回这个页面,但是什么错误提示也不会显示

      <action name="add" method="add">
      <result name="input">detail.jsp</result>
      <result type="redirect-action">photo_detail?pid=${pid}</result>
      </action>
      如果这样写的话,错误提示是可以显示的,但是文章内容就不会显示出来了,只有一个评论框,有什么好的办法没有呢?<result name="input">detail?pid=${pid}</result>
      <result type="redirect-action">detail?pid=${pid}</result>
      </action>

      我定义了一个DetailAction-add-validation.xml文件来对输入的评论进行验证.如果验证失败返回这个页面,但是什么错误提示也不会显示

      <action name="add" method="add">
      <result name="input">detail.jsp</result>
      <result type="redirect-action">detail?pid=${pid}</result>
      </action>
      如果这样写的话,错误提示是可以显示的,但是文章内容就不会显示出来了,只有一个评论框,有什么好的办法没有呢?
      <result name="input">photo_detail?pid=${pid}</result>
      <result type="redirect-action">photo_detail?pid=${pid}</result>
      </action>

      我定义了一个DetailAction-add-validation.xml文件来对输入的评论进行验证.如果验证失败返回这个页面,但是什么错误提示也不会显示

      <action name="add" method="add">
      <result name="input">detail.jsp</result>
      <result type="redirect-action">photo_detail?pid=${pid}</result>
      </action>
      如果这样写的话,错误提示是可以显示的,但是文章内容就不会显示出来了,只有一个评论框,有什么好的办法没有呢?

      我也遇到过这种问题
      是加了一个<interceptor-ref name="prepare" />拦截器
      不知道还有没有更好的解决办法.<result name="input">photo_detail?pid=${pid}</result>
      <result type="redirect-action">photo_detail?pid=${pid}</result>
      </action>

      我定义了一个DetailAction-add-validation.xml文件来对输入的评论进行验证.如果验证失败返回这个页面,但是什么错误提示也不会显示

      <action name="add" method="add">
      <result name="input">detail.jsp</result>
      <result type="redirect-action">photo_detail?pid=${pid}</result>
      </action>
      如果这样写的话,错误提示是可以显示的,但是文章内容就不会显示出来了,只有一个评论框,有什么好的办法没有呢?

      我也遇到过这种问题
      是加了一个<interceptor-ref name="prepare" />拦截器
      不知道还有没有更好的解决办法.我加上<interceptor-ref name="prepare" />拦截器之后,
      <result name="input">detail?pid=${pid}</result>
      这句代码里面的pid值得不到了,不知道是怎么回事了. 8 楼 cumt_TTR 2012-09-22 第三种方法是不是要写一个拦截器继承MethodFilterInterceptor ??

读书人网 >软件架构设计

热点推荐