gpt4 book ai didi

java - 使用 struts 2 下载为 csv

转载 作者:行者123 更新时间:2023-12-01 11:26:10 24 4
gpt4 key购买 nike

我想将一些数据写入 csv 文件,用户应该能够通过浏览器下载它。

@Actions({ @Action(value = "/downloadReport", results = { @Result(name = "success", type = "stream", params = {
"contentType", "${type}", "inputName", "stream", "bufferSize","2048", "contentDisposition",
"attachment;filename=\"${filename}\"" }) }) })
@SkipValidation
public String downloadReport() throws BaseAppException {

try {
filename =AdSkippingConstants.REPORT_FILE_NAME;
type = AdSkippingConstants.CSV_FILE_TYPE;
File file = new File(filename);
FileUtils.write(file, "Helloo World");
stream = new FileInputStream(file);
}
catch (IOException e) {
logger.error("Error occured while exporting error data", e);
}
return SUCCESS;
}

在jsp中我使用ajax调用

    function exportAsCSV(){
$.ajax({
url: 'downloadReport.action?',
type: "POST",
success: function() {
//To Un Block the Change Password page if the page reloaded
//$('div.ui-dialog').unblock();
// $('#change_password_details_body').html(data);
},
error: function(){
//To Un Block the Change Password page if the page reloaded with error.
//$('div.ui-dialog').unblock();
}
});
}

我能够得到响应,甚至 fileDownload=true 也会响应,但下载到 csv 选项仍然无法在任何浏览器中打开,还请让我知道如何将 html 数据传递给操作以写入 csv。

在jsp中我使用此代码进行ajax调用

var gridModel = "gridModel";
var sortname = "1";
var sortorder = "asc";
var caption = '<s:text name="grid.label.heading" />';
var url = "getGridSearchResults.action";
init.push(function() {
loadTable("gridtable", url, gridModel, columnDefs, columns, sortname,
sortorder, caption);
});

<table cellpadding="0" cellspacing="0" border="0" class="table table- striped table-bordered" id="gridtable"></table>

因此,通过 ajax 调用,我正在加载表的数据。

最佳答案

您不需要 AJAX。这是一个普遍的误解。

您只需执行对返回 stream 的操作的调用。结果,contentDisposition: attachment HTTP header 。

这将告诉浏览器下载文件而不是内联打开它。

Read more in this answer

<小时/>

编辑:如果您需要将数据从 HTML 表发送到操作,则需要

  • use hidden input fields与使用 <s:property/> 打印的值相同标签(或其他);
  • specify an indexlist[%{#status.index}].attribute符号将不同的记录发布为集合的不同元素。

关于java - 使用 struts 2 下载为 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30793400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com