struts2中表单提交问题

在用struts2提交表单的时候我有两个按钮,一个是<input type="submit" value="查询" />一个是<input type="button" value="导出" onclick="doReport()" />,
查询提交表单的action,
如:<form id="sendsingle" name="sendsingle" action="sendSingleQuery.action" method="post">,
导入调用js的提交方法,如:
function doReport() {
var form = document.getElementsByName("sendsingle")[0];
form.action = "doSendSingleReport.action";
form.submit();
}
第一次点击查询跳转sendSingleQuery.action没有问题。
我点击导出跳转doSendSingleReport.action没有问题。
我在点击查询的时候就跳转到导出的action了(doSendSingleReport.action)。
这是为什么啊,大家帮帮忙 谢谢!

你点击导出后js修改了form的action,如果页面没有刷新的话,form的action是不会自动重置为sendSingleQuery.action的。
给你说个简单的方法,就是在doReport()方法的最后加上一行js代码:
form.action="sendSingleQuery.action";
在导出后重置为默认的action,代码修改量最小,请采纳。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-22
看了下你的问题,结合现在一直用的struts,感觉原因可能是返回页面的问题
首先在开发struts2项目是,要配置struts.xml文件
配置文件中标明了返回值的返回页面,
有可能你sendSingleQuery这个方法的返回值返回正确,也就是返回了现在的页面
而doSendSingleReport这个方法是页面刷新后返回的是另一个页面,假设为doSendSingleReport页面
该页面的两个按钮或方法同时指向doSendSingleReport.action
导致该问题的产生。
希望回答对你有帮助
第2个回答  2012-11-22
在点击导出按钮以后,你的form的action已经被你doReport方法给改成“doSendSingleReport.action”了。你再点击查询按钮的时候,当然访问的就是导出的action了啊。
但是按理说,你表单提交以后是页面刷新操作的,此时整个页面应该重置了,form的action也会变回原来的action。搞不懂。

你说一下你是怎么操作的。
你点击查询不跳转到另一个页面吗
相似回答