做了一个导出excel的功能,下面贴出form查询表单部分jsp页面(也就是说查询条件):
<div class="search-term">
<form action="${ctx}/except/queryExcept.action" id="queryExceptForm" name="queryExceptForm" method="post">
<div class="term">
<label>开始时间:</label>
<input type="text" id="startdate" name="startdate" class="itemContentInput" readonly="readonly"/>
<img src="${ctx}/images/date2.png" class="dateImg1 date" />
</div>
<div class="term">
<label>结束时间:</label>
<input type="text" id="enddate" name="enddate" class="itemContentInput" readonly="readonly"/>
<img src="${ctx}/images/date2.png" class="dateImg1 date" />
</div>
<div class="term">
<label>状态:</label>
<select name="state" id="state">
<option name="state" value="">全部</option>
</select>
</div>
<div class="searchBtn">
<input type="button" name="querybutton" class="search" value="查询"/>
</div>
</form>
</div>
下面是js里的一段点击导出按钮触发的事件,在path路径后面拼接了参数,然后提交表单:
//导出
$("#exportbutton").click(function(){
var path = ctx+'/except/exportExcel.action?startdate='+startdate+'&enddate='+enddate+'&state='+state;
$("#queryExceptForm").attr("action", path);
$("#queryExceptForm").submit();
});
后台的action给出这三个参数的setter getter方法了!
这种情况就会导致后台的每个参数的值都会被拼接两次,中间用逗号隔开。出现这种情况的原因就是js里的path路径后面拼接了参数,之后又提交了form表单,就会导致参数被重复提交到后台。
解决方法:
1、提交表单,不拼接参数:
$("#exportbutton").click(function(){
var path = ctx+'/except/exportExcel.action';
$("#queryExceptForm").attr("action", path);
$("#queryExceptForm").submit();
});
2、不提交表单:
$("#exportbutton").click(function(){
var path = ctx+'/except/exportExcel.action?startdate='+$("#startdate").val()+'&enddate='+$("#enddate").val()+'&state='+$("#state").val();
window.open(path);
});
分享到:
相关推荐
使用struts2框架来实现前台与后台的交互
struts2 获取request session对象
uploadify+struts2+json 前台动态向后台传数据,并显示后台返回参数完成文件上传功能
struts2令牌解决页面重复提交问题,资源中包含一个实例代码
防止重复提交的总要解决方案 相信对struts的学者有帮助 大家看看
通过用户登录的例子,用Struts2的validator做后台的校验
1 判断session是否失效 本实例没测试这个问题 但在工作项目中碰到了 但原因在这里记录下:web应用会存在一个session 而uploadify上传时也会产生一个新的session 导致在后台判断session是否失效时获取的session为null...
Extjs4文件上传,后台struts2
struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别...
NULL 博文链接:https://cdxs2.iteye.com/blog/1926357
2) 二是,forward跳转引起的重复提交。当用户将信息提交到服务器,服务器响应采用forward方式调转到下一个页面后,此时地址栏中显示的是上个页面的URL,若刷新当前页面,浏览器会将再次提交用户先前输入的数据,就会...
Struts2文件上传下载和表单重复提交问题
这里是Struts2 中放置表单重复提交的例子。
详细理解一下Struts2的参数,有助于对Struts2更深的体会!
本资源是通过Struts框架来写的一个表单数据获取的项目,包括了Struts.xml和web.xml文件的配置。
struts2与前台交互时序
struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...
资源中示例了一个struts2的配置文件中配置的action的result结果为另外一个action的配置,该跳转的过程中是带所有参赛调整的,在另外一个action中可以接受到当前action的所有参数,此配置文件是我日常开发中的经验...
struts1和struts2获取相对路径的方法.doc