Struts2中action的方法被執行兩次
- 2020 年 4 月 9 日
- 筆記
最近在用struts2遇到一個怪問題,struts2的默認方法老是執行兩次,搞了大半天都沒有找到,在最後即將放棄時終於找打了,原來是響應的頁面有 一個圖片標籤,而圖片標籤請求的地址不存在,它就默認再次請求了當前請求的url,造成了兩次執行struts2的方法。為此特做下次筆記,給自己和大家 分享,同時還在網路上搜索其它幾個造成的方法。
1,被響應的圖片URL不存在,導致請求原諒url而執行了兩次;
2,ajax模式下,調用的action方法不能為get*方式命名,內中機理未知;
結論:action中方法最好不要以get開頭。
3,提交標籤中用到JS腳本去執行的話,如寫成<input type="submit" … οnclick="save()>的話,submit要執行一次,οnclick="save()也要執行一次,去掉其中一個即可;
3.2:
jsp: <!–使用按鈕提交form–> <s:form action=""> <input type="button"οnclick="search()"value="search"/> </s:form>
解決辦法: <s:form action="" οnsubmit="return false;"> 原因是,form表單提交會被struts2當作action執行.
結論:盡量用html自帶的form 標籤
4 json格式下, firefox中的yslow插件會發送第二個 HTTP GET 請求得到頁面的資訊。