做了一个导出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框架协调前端用户界面与后端业务逻辑进行数据交换。在传统的Web开发中,前端HTML页面通常通过HTTP请求与服务器上的后台Java代码进行通信。Struts2...
在Struts2中,防止重复提交是一个重要的问题,因为它可能导致数据不一致性和服务器资源的浪费。本文将详细介绍如何在Struts2中解决这个问题,以及相关的技术概念。 首先,我们要理解Struts2中的拦截器(Interceptor...
struts2 获取request session对象
下面将详细讲解Struts2令牌解决重复提交问题的过程: 1. **生成令牌**:在Action中,使用`TokenAwareActionSupport`作为基类,这个类实现了`TokenSessionStore`接口,可以方便地获取和验证令牌。在表单展示之前,...
本文将深入探讨如何在Struts2中实现向结果传参数。 首先,理解Struts2的结果类型是关键。Struts2支持多种内置结果类型,如`dispatcher`(默认的,用于转发到JSP)、`stream`(用于处理文件下载)和`redirectAction`...
本教程将详细讲解如何使用`uploadify`、`Struts2`和`JSON`技术实现前台动态向后台发送数据,以及展示后台返回参数来完成文件上传的功能。这三个组件在Web开发中各自扮演着重要的角色: 1. **Uploadify**:Uploadify...
- Struts2支持使用注解在Action类的方法参数上,比如`@RequestParam`,配合`@InitBinder`,可以在控制器层处理编码问题。 4. **JSP页面**: - JSP页面的`;charset=UTF-8" language="java" %>`指令应设置正确的...
本文将详细介绍Struts2中Action获取参数的三种主要方式,并通过实际代码示例来阐述每种方法的使用。 1. **通过getter和setter方法获取参数** 这是最常见的方式,Struts2会自动将请求参数与Action类的属性进行匹配。...
在Struts2中,你可以直接在Action类中声明与表单字段相对应的属性,Struts2的自动数据绑定机制会将表单参数映射到这些属性。例如,如果表单有字段`name`和`email`,Action类可以如下所示: ```java public class ...
Validator是Struts2提供的一种强大的数据验证机制,用于在后台进行用户输入的检查,确保数据的有效性和安全性。在"struts2_1.7_validator"这个压缩包中,可能包含了实现Struts2用户登录验证的示例代码。 Struts2的...
### Struts2中Action间的参数传递方法 在Struts2框架中,经常需要实现Action之间的跳转,并在跳转过程中传递必要的参数。这种需求在实际开发中非常常见,尤其是在需要根据用户的不同操作来调用不同的业务逻辑时。...
在这个主题中,我们将深入探讨Struts2如何获取参数、解决乱码问题以及实现页面跳转。 首先,让我们来看看Struts2如何获取HTTP请求中的参数。在Struts2中,我们可以使用Action类来接收和处理请求参数。Action类是...
3. **Token机制**:在Struts2中,Token机制用于解决重复提交问题。系统为每个表单生成一个唯一的Token,将其隐藏在表单中,并在提交时一起发送到服务器。服务器接收到请求后,会检查Token的有效性,如果已经处理过这...
同时,Struts2支持动态方法调用,使得可以根据用户请求的参数动态选择执行的方法。 5. **结果类型与视图技术** 结果类型定义了Action执行后的跳转策略。视频管理系统可能使用JSP、FreeMarker或Velocity作为视图...
而Struts2是一个强大的MVC(Model-View-Controller)框架,它广泛应用于Java Web开发中。本主题主要探讨如何在Struts2框架下利用AJAX传递和接收JSON(JavaScript Object Notation)数据,这是一种轻量级的数据交换...
在这里,"struts2+jquery无刷新取后台数据"的实现主要是利用Ajax技术,结合Struts2的Action和Result,实现在用户界面上的无刷新交互。 首先,登录功能是Web应用的基础。在Struts2中,我们可以创建一个登录Action类...
### Struts2参数配置详解 #### 一、概述 在深入了解Struts2框架时,我们不可避免地会接触到各种参数配置。这些配置对于整个框架的运行至关重要。本文将围绕Struts2中的关键配置进行深入探讨,旨在帮助开发者更好地...
Struts2提供了多种策略来防止这一问题: - **令牌(Token)机制**:在用户提交表单前,服务器生成一个唯一的令牌,将其隐藏在表单中。当表单提交时,服务器检查令牌是否已存在于session或请求中,如果存在且与提交...
在Struts2框架中,对request和session的管理和获取是实现Web应用中用户交互和状态维护的重要手段。本文将深入探讨Struts2中如何获取request和session,以及这两种对象的作用和应用场景。 ### Struts2框架简介 ...