为什么在struts配置文件中配置parameter="method"没起作用呢??比如在前台链接中设置org.do?method=addInput,但是并不会调用addInput方法,总是调用execute方法呢??

解决方案 »

  1.   

    请保证是extends ActionDispatcher
      

  2.   

    你的action有没有继承自DispatchAction ?
    如果有,那么你的action中有没有execute()?
    如果有,请去掉execute()。
    如果没有继承自DispatchAction ,那么请你改过来,action必须继承自DispatchAction ,用parameter="method"时才会有作用。
      

  3.   

    有啊,action中也有execute方法!!
      

  4.   

    刚刚又调试了下,发现org.do?method=addInput&parentid=1才不行的,如果是这样的话org.do?method=addInput才能调用相应的方法!!为什么不能够传参数呢??加了一个parentid=1为什么就不行了呢???
      

  5.   

    org.do?method=addInput&parentid=1
    这里加参数是可以的,不管你加几个都可以!
    你去掉了execute()了吗?
      

  6.   

    刚刚又做了测试,如果action没有execute又可以调用哦,为啥啊??
      

  7.   

    去掉了,恢复正常了,为什么多了个execute就不能呢??
      

  8.   

    谁告诉你DispatchAction要存在execute()方法?DispatchAction继承自Action,它重写的父类Action的execute()方法,在其中作了特殊处理,所以,你后面加参数是不可以的!
    存在也行,就是不能要更多参数,org.do如果是这样,它会先去执行你的execute()方法,如果没有,则报错!如果有则执行...
    org.do?method=addInput&parentid=1,在你的action中加了execute(),按理说它会进入addInput(),结果没有,为什么呢?原因就在是DispatchAction的execute()做了处理!让你进不了这个方法,当你去掉了,那又可以了!那么可想而知,DispatchAction的execute()做了关于参数截取的处理!