【发布时间】:2017-11-09 14:33:30
【问题描述】:
我想将 JavaScript 变量从一个 JSP 页面传递到另一个页面。
在我的第一个 JSP 页面中,我根据数据库查询创建了一个动态表,我想将此表发送到第二个 JSP 页面,到目前为止我所做的是
<form id="excelForm">
<input type="submit" value="Export to CSV" onclick="myFun();"/>
<input type="hidden" name="pagename" value="Practice/AfterSubmit" />
</form>
<table id="tableContent" border="1">
.... approx 50-3000 rows
</table>
<script>
function myFun(){
console.log("Event sucess");
var tableData = document.getElementById("tableContent").outerHTML;
var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "tableData");
input.setAttribute("value", tableData);
document.getElementById("excelForm").appendChild(input);
}
</script>
在第二个 JSP 页面中,
String myData = request.getParameter("tableData");
当表格最多有 50 行时它工作正常,但是当表格大小增加时,URL 的大小会增加,我得到 400: Bad Request 错误
有什么想法可以做到这一点的最佳方式吗?
【问题讨论】:
-
如果我做对了,这是一个很长的获取请求。
-
@ThomasKleßen - 正确。
-
您可以考虑使用 javascript CSV 导出器(不必再次将整个表发送到服务器)。 Datatables 有一个很好的内置数据表,另见this question
-
@James - 我的目标是将 HTML 表格转换为 csv 并将它们写入服务器路径。我确实从 Javascript - stackoverflow.com/questions/47188611/… 开始,但后来因为任何客户端语言都无法与服务器文件系统通信而陷入困境,所以我使用 jsoup 和 apache poi 重写了我的代码
标签: javascript jsp