【问题标题】:How do I pass JavaScript variable from one JSP page to another如何将 JavaScript 变量从一个 JSP 页面传递到另一个
【发布时间】: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


【解决方案1】:

当表单没有method 时,使用的默认方法是GET。使用 POST 获取更大的有效载荷。如果适用,您可能还想检查服务器设置的最大请求大小。有些服务器会忽略大于设置限制的请求,有些则静默失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多