Struts2 Action调用了两次

时间:2011-03-05 09:20:37

标签: java struts2

我正在调用像

这样的struts动作
<a href="someactionLink.action">Do action</a>

在Struts.xml中

<action name="*Link" method="{1}" class="com.shashi.getalldata.LinkAction">

问题是两次调用的操作。有一次当我点击href和第二次加载页面时。有没有人知道这里的情况是什么?

3 个答案:

答案 0 :(得分:3)

页面上是否有任何可能导致后续请求的内容?例如。图标/样式/图像/脚本。通过favicon,我的意思是缺乏,但浏览器可能正在寻找(大多数浏览器只在一个地方寻找它们)。

检查访问日志以获取后续请求。

答案 1 :(得分:0)

看一下这个链接。它帮助我通过双重提交来弄清楚我的问题。它与我的代码无关,它完全是FireFox 3.X和4.X的YSlow插件。

Double submit solution

答案 2 :(得分:0)

我的双重提交问题的解决方案。

首先,我正在使用javascript进行表单提交。喜欢:

<a href="#" onclick="save();">
      <input type="image" src="images/save.gif" alt="Save" title="Save" /></a>

其中save()为:

function save() {
     ...
     document.form_name.action = "Struts2_action.action";
     document.forms[1].submit(); 
   }

好吧,我没有添加“ return false;”。在save()之后执行以下操作:

返回假,请遵循三个步骤

  • 首先,它停止了浏览器的默认行为。
  • 它防止事件传播DOM
  • 停止回调执行,并在调用时立即返回。

所以,我的主播变成了:

<a href="#" onclick="save();return false;">
          <input type="image" src="images/save.gif" alt="Save" title="Save" /></a>

重复提交问题已解决。