最近在学struts2,出现个问题,就是用XXX!method.action在form表单中提交会执行method.不管xml怎么去配置,都是如此.网上很多都是img会自动当做一次action,但是我没有用到img.jsp也没有出现问题.
jsp:   
<!--使用按钮提交form -->   
<s:form action="">   
  <input type="button" onclick="search()" value="search"/>   
</s:form>   
  
document.forms[0].action="test!search.action";   
document.forms[0].submit();   
  
  
java:   
//使用动态方法调用   
public Class Test extends ActionSupport{   
  public String execute(){return "";}   
  public String search(){return "";}   
}  
解决办法:<s:form action="" onsubmit="return false;">原因是,form表单提交会被struts2当作action执行.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/phoenix2121/archive/2010/06/21/5683098.aspx

解决方案 »

  1.   

    原因是,form表单提交会被struts2当作action执行.把struts2的url-mapping的/*改為 *.action
      

  2.   

    这个问题很久之前就知道啦.! 呵呵  不过还是谢谢LZ分享.!
    像这个问题直接用html的form比较好.! struts2的UI标签有的时候很恶心的说!
      

  3.   

    修改成*.action了, 那我在struts配置文件中修改扩展名不是废掉了吗?
      

  4.   

    把struts2中的默认执行方法:public String execute(){return "";}   删除掉即可
      

  5.   


    我晕,你要是带着struts2默认的excute()方法,每次调用都执行的。(你想想如果不是动态的action他是怎么调用的就知道了)你要是不想删除可以给它改个名字试试
      

  6.   

    我 艹,如果方法使用get开头,也会出现重复执行问题。
    对struts2无语!!!