问个问题:
struts的validate
当偶一个Form继承了这个ValidatorForm,
确实能做到页面验证,
可是ACTION继承DispatchAction的时候 
如果你直接LINK过去的话:
STRUTS是先执行验证后执行ACTION方法```有撒办法让他们换过来做```先执行方法再执行验证
比如:
<html:link action="BUSSQiu.do?method=gotoAddBussQiuPage" target="right">发布求购商机</html:link>
那么struts会先验证,而不是先执行ACTION方法,显然这是不对的。求解决方法:

解决方案 »

  1.   

    但是先执行action 的话,就直接转到相应页面的话,验证不就没用了吗? 
      

  2.   

    验证就是检验数据的合法性,都提交给action了检验就是检验出还有什么用,该做的都做了。
      

  3.   

    当你先执行检验的时候,如果你页面上有别的 LIST的时候  它就会提示没有这个Cannot find bean under name ***
    ,如果先执行ACTION方法就不会有这个问题了。
      

  4.   

    偶是想先执行方法``然后把数据传到页面,再然后验证这个页面这个还是不清楚样......如果当前页面是A,link的页面是B,楼主是希望执行action后,验证A页面还是验证B页面呢?
      

  5.   

    比如MENU  下的N列  你点一个 让它到ACTION, 比如<html:link   action="BUSSQiu.do?method=gotoAddBussQiuPage"   target="right"> 发布求购商机 </html:link> 可是它会先验证后执行ACTION方法```也就是转到页面之前已经验证了,那么肯定会提示N多没填的,如果是先执行方法后,再验证那就对了。
      

  6.   

    偶是想先执行方法``然后把数据传到页面,再然后验证这个页面 然后把数据传到页面,已经跳转过去了,你还怎么验证?给你的建议是别有这么神奇的想法。你想要的东西,我是没有看明白。你可以先验证,然后将被验证的数据放到合适的地方(response,session+验证的结果),之后在合适的scope中取出form,之后点点我不知道你在说什么,也不知道我在说什么!
      

  7.   

    不知道是不是我没有理解楼主你的想法不同的form对应的不同validator就行了validator框架本来就是分客户端和服务端验证,两者都基于同一个validator验证顺序都是先客户端再服务端,没有听说服务端验证后再回来验证客户端的楼主如果你的application是基于不同的form就让它自己去验证吧如果你的application是同一个form的话,就加上hidden element,通过validator rule 中的 require-when 编写特殊的验证规则,譬如某些情况下验证,某些情况不验证
      

  8.   

    Struts的form校验就是在提交后,在到action之前时校验数据是否合法的。
    你的action对应的form有校验,那么每次请求这个action时都会去校验form。
    <html:link   action="BUSSQiu.do?method=gotoAddBussQiuPage"   target="right"> 发布求购商机 </html:link>
    你这里这样连接提交到action时,form里应该是没有值的,但校验同样会发生。
    解决方法1:去掉校验!
            2:重新写一个action来做gotoAddBussQiuPage方法中要做的事。
      

  9.   

    都执行完了还验证什么呀.有意义吗?
    另外编程不要把视野局限在框架上.感觉现在的程序员都被困在框架里面了,嗨 困兽之斗.
    你可以读下struts源码看他的这个地方的实现原理之后,先不管你的想法对不对,但至少知道你的程序在做什么了.
      

  10.   

    我的理解是验证action得到的数据
    如果这样的话,就没必要使用validateForm 了,因为它验证的是提交前的form数据
    你的数据完全可以在action里验证呀
      

  11.   

    谢谢大家参与。其实偶的意思很明白:action对应的form有校验,那么每次请求这个action时都会去校验form。如果不是页面提交,而是直接连接过去的话,它也会验证。偶的意思就是怎么过滤掉这个验证(不让它验证),当提交的时候才验证而连接的时候不验证。STRUTS的执行是:连接(不验证)-》执行方法--》有数据的页面(验证)同一个ACTION 对应的同一个FORM。///////////////////////////////////////////////////////////Struts的form校验就是在提交后,在到action之前时校验数据是否合法的。 
    你的action对应的form有校验,那么每次请求这个action时都会去校验form。 
    <html:link       action="BUSSQiu.do?method=gotoAddBussQiuPage"       target="right">   发布求购商机   </html:link> 
    你这里这样连接提交到action时,form里应该是没有值的,但校验同样会发生。 
    解决方法1:去掉校验! 
            2:重新写一个action来做gotoAddBussQiuPage方法中要做的事
    ============================================================================非常感谢大家参与。。马上揭贴。