前提, 用struts-jquery-grid 生成的表单,然后导出所选的记录。
第一部分(jsp)
<
script type="text/javascript">
$.subscribe(
'beforeLink', function(event,data) {
var fData =$('#gridmultitable').jqGrid('getGridParam','selarrrow');
$(
'#select').attr('value',fData);
});
</
script>
</
head>
<
title>
Users
</
title></head>
<
body>
.......中间漏去了 表单部分
<sjg:gridColumn name="id" index="id" title="ID" hidden="true"/>
</sjg:grid>
<br/>
</
div>
<s:form id="download" action="download" >
<div id="text">
<s:hidden id="select" label="SelectIds" name="selectIds" value="wiow"/>
</div>
</s:form>
<div class="type-button">
<sj:a
id="ajaxformlink"
formIds="download"
indicator="indicator"
onClickTopics="beforeLink"
button="true"
>
Export Record
</sj:a>
</div>
第 二部分struts.xml
<!-- download simple-->
<action name="download" class="com.pulse.ipmanager.action.admin.FileDownloadAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream;charset=ISO8859-1</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="struts2.txt"</param>
<param name="bufferSize">4096</param>
</result>
</action>
第三部分 action
package
com.XXX;
import
java.io.ByteArrayInputStream;
import
java.io.InputStream;
import
java.util.ArrayList;
import
java.util.Collection;
import
java.util.List;
import
java.util.Map;
import
org.apache.commons.collections.CollectionUtils;
import
org.apache.struts2.interceptor.SessionAware;
import
com.opensymphony.xwork2.Action;
import
com.opensymphony.xwork2.ActionSupport;
import
com.XXX.WebUserPageBean;
public
class FileDownloadAction extends ActionSupport implements Action, SessionAware{
/**
*
*/
private static final long serialVersionUID = 1L;
private Map<String, Object> session;
private String selectIds ;
private InputStream inputStream;
public InputStream getInputStream() throws Exception {
return inputStream;
}
public String execute() throws Exception {
List<WebUserPageBean> li=(List)
session.get("mylist");
List<WebUserPageBean> reli=
new ArrayList<WebUserPageBean>();
WebUserPageBean webuserTemp;
StringBuffer exportdata=
new StringBuffer();
if (this.selectIds!=null && !this.selectIds.trim().equals("")) {
String [] str=
selectIds.split(",");
for (int i = 0; i < str.length; i++ ){
for (int j = 0; j< li.size() ; j++){
webuserTemp= (WebUserPageBean) li.get(j);
String id=webuserTemp.getId();
if (str[i].trim().equalsIgnoreCase(id)){
reli.add(webuserTemp);
break;
}
}
}
// instead of doing the CSV transformation here, we can declare a custom CvsTransfermer
@SuppressWarnings("unchecked")
Collection<String> csvRows = CollectionUtils.collect(reli,
new CvsTransfermer());
for(String s : csvRows) {
exportdata.append(s);
}
}
inputStream = new ByteArrayInputStream(exportdata.toString().getBytes());
return SUCCESS;
}
public void setSession(Map<String, Object> session)
{
this.session = session;
}
public void setSelectIds(String selectIds){
this.selectIds=selectIds;
}
public String getSelectIds(){
return this.selectIds;
}
}
好了。
注意的是, sj:submit 标签必须targets 不为空。 所以必须用sj:a
分享到:
相关推荐
struts2+jquery+ajax实现了文件的异步上传,的MyEclipse编写的简单项目
MVC Struts2框架搭建,Jquery Ajax异步数据交互,内涵需要的jar包及ppt讲解
Struts2整合jQuery实现Ajax功能
这圣思园张老师的一个上课演示文件,讲的是struts2+jquery+Ajax实现异步交互的简单例子。
Struts2整合jQuery实现Ajax功能 和大多数喜欢用PHP做jQuery.ajax()后台不一样,我偏偏 喜欢 Java Struts2 Action。 欢迎您的下载完善。一同进步。
struts2+json+jquery实现ajax数据的存取
struts2+ajax+jquery异步批量上传超大文件,单文件最大支持2G,一次文件数量,文件大小都可设置。简单明了。绝对可用,稍微懂点的就可以修改为自己所用。你值得拥有! 我会分享给大家更多更好的东西,希望支持!
这个struts2 实例是通过用js的一个框架jquery来实现的ajax,jquery真的不错,其中的数据传输格式用的时json,用了一个json_lib的jar包,所有所需的包都在了,下载后就能运行,对于初学struts2与ajax的朋友很有点帮助...
Struts2.0+jquery.progressbar实现上传文件进度条 附带实例源码 uploadJqueryProgress.jsp uploadprogress.jsp 两个上传页面,两种不一样风格的进度条。uploadJqueryProgress.jsp 是在 uploadprogress.jsp 的基础...
一个简单的demo,实现了struts2+jquery执行ajax异步请求并返回json类型数据的实例,代码中附有注释,简单易懂。 基于eclipse开发,导入到eclipse即可运行。
struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步...
本人自己写的struts2结合jquery实现ajax的源码。
Struts2+Hibernate+Spring+jQuery 联合使用
Struts2整合jQuery实现Ajax功能_demo
struts2+jquery+ajax实现头像上传切割图片,稍事改动即可用于具体项目
Struts2 Jquery ajax Json实现的一个完整案例
Struts2+jQuery ajax的一个商品小系统Struts2+jQuery ajax的一个商品小系统
struts2+extjs3的单/多文件上传,后台也可以不用struts2,前台也可以去掉extjs,资源包含所需要的所有JAR包,无需另外下载,代码量绝对精简易懂。