`

struts2后台重复获取前台参数问题

阅读更多
做了一个导出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);
});
分享到:
评论

相关推荐

    java工作总结

    2. **前台向后台传递数据** - URL参数传递(GET方式)。 - 使用`$.ajax()`等发送POST请求。 以上内容涵盖了Java Web开发中的多个核心概念和技术点,对于理解和掌握Java Web开发具有重要的指导意义。

    Spring MVC面试题(2022最新版)

    如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象? 可以使用`@ModelAttribute`注解将请求参数自动绑定到控制器方法的参数上。 ```java public String handleRequest(@...

    java+mysql实现的代码分享网(所有源码已开源,效果可看网址:www.admintwo.com)

    2、后台框架,struts2+spring+spring JDBC 3、前台技术,layui+jquery+ajax 网站设计思路: 前台渲染是采用的jsp技术,为了保证网站的速度,我使用了几种方法: 1、我将重复的代码保存成单独的jsp文件然后引入(这样...

    JQuery中Ajax的操作完整例子

    最后,针对页面数据量大的问题,文中推荐了一个jQuery插件——JqueryForm,该插件支持以Struts2域驱动模式自动获取封装数据,能够处理复杂表单的异步提交。 总结而言,文章详尽地讲解了JQuery中Ajax操作的方法和...

    SSH框架网上商城项目第21战之详解易宝支付的流程

    【SSH框架】SSH(Struts2、Spring、Hibernate)是一个流行的Java Web开发框架,它结合了Struts2的MVC模式、Spring的依赖注入和事务管理以及Hibernate的对象关系映射功能,大大简化了Web应用程序的开发工作。...

    黑马面试宝典知识点复习

    #### Struts2框架 - **拦截器**:通过拦截器处理请求、响应等过程。 - **结果类型**:定义不同的结果类型来控制请求处理后的行为。 #### Hibernate框架 - **对象关系映射**:将Java对象与数据库表进行映射。 - **懒...

Global site tag (gtag.js) - Google Analytics