做了一个导出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);
});
分享到:
相关推荐
2. **前台向后台传递数据** - URL参数传递(GET方式)。 - 使用`$.ajax()`等发送POST请求。 以上内容涵盖了Java Web开发中的多个核心概念和技术点,对于理解和掌握Java Web开发具有重要的指导意义。
如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象? 可以使用`@ModelAttribute`注解将请求参数自动绑定到控制器方法的参数上。 ```java public String handleRequest(@...
2、后台框架,struts2+spring+spring JDBC 3、前台技术,layui+jquery+ajax 网站设计思路: 前台渲染是采用的jsp技术,为了保证网站的速度,我使用了几种方法: 1、我将重复的代码保存成单独的jsp文件然后引入(这样...
最后,针对页面数据量大的问题,文中推荐了一个jQuery插件——JqueryForm,该插件支持以Struts2域驱动模式自动获取封装数据,能够处理复杂表单的异步提交。 总结而言,文章详尽地讲解了JQuery中Ajax操作的方法和...
【SSH框架】SSH(Struts2、Spring、Hibernate)是一个流行的Java Web开发框架,它结合了Struts2的MVC模式、Spring的依赖注入和事务管理以及Hibernate的对象关系映射功能,大大简化了Web应用程序的开发工作。...
#### Struts2框架 - **拦截器**:通过拦截器处理请求、响应等过程。 - **结果类型**:定义不同的结果类型来控制请求处理后的行为。 #### Hibernate框架 - **对象关系映射**:将Java对象与数据库表进行映射。 - **懒...