Delei

成功源于每日不断的积累!

导航

[怪异问题]struts2 action ajax重复执行

Posted on 2012-04-11 17:05  Delei  阅读(804)  评论(0编辑  收藏  举报

action重复执行

错误思想:原因为定义了两个相同方法但不同名的action。

正确想法:form中是否使用了submit按钮,但在该按钮还有一个onclick事件,该事件触发一个JavaScript方法,该方法又一次提交form。这样会导致action执行两次。

查询得到的一些有结论:

1.  json格式下, firefox中的yslow插件会发送第二个 HTTP GET 请求得到页面的信息.
2.  ajax模式下,调用的action方法不能为get*方式命名,内中机理未研究


=========================================================================

链接地址:http://hi.baidu.com/jianxh/blog/item/7023c34544ed7034cefca35b.html

今天在这个百度空间里面发现有这样的解释,记下来备份下.

struts2 ajax 方法执行两次
2011-01-17 12:03

struts2中使用json插件执行ajax处理时,如果方法名是get方法的时候,方法会莫名其妙的执行两次。

原因:

struts2 中JSON的原理是在ACTION中的get方法都会序列化,所以前面是get的方法只要没指定不序列化,都会执行

解决方法

1、Action中的业务方法前别加get 或者 set(属性的get set 除外)
2、用@JSON(serialize=false)指定方法不序列化



import com.googlecode.jsonplugin.annotations.JSON;

@JSON(serialize=false)
public String getChild() throws Exception{ 
..............
   ..............
   return "success";
 
}