【问题标题】:How to return value from a jsp page如何从jsp页面返回值
【发布时间】:2023-03-13 01:09:02
【问题描述】:

我有一个带有 java 脚本的 jsp 页面,它使用 out.println(obj) 显示所需的输出,但我想返回这个 'obj' 以便这些值可以在另一个 js 文件中使用。如何从jsp页面返回这个?

所以js文件是:

(function() {

    document.addEventListener('DOMContentLoaded', function() {

        var gridDiv = document.querySelector('#myGrid');

        var gridOptions = {
            columnDefs: [
                {headerName: 'CLIENT_ACRONYM', field: 'CLIENT_ACRONYM'},
                {headerName: 'ORDER_QTY', field: 'ORDER_QTY'},

            ]
        };

        new agGrid.Grid(gridDiv, gridOptions);

        jsonLoad( function(data) {
            gridOptions.api.setRowData(data);
        });
    });
    })();


function jsonLoad(callback) {
    var xhr = new XMLHttpRequest();

    xhr.open('GET', '../output.json'); // by default async
    xhr.responseType = 'json'; // in which format you expect the response to be

    xhr.onload = function() {
        if(this.status == 200) {// onload called even on 404 etc so check the status
            callback(this.response);
        }
    };

    xhr.onerror = function() {
        console.log('loading data error');
    };

    xhr.send();
}

返回 Jsonarray 的 JSP 文件:

JSONArray jsonArray = new JSONArray(orderDetailsList1);

response.setContentType("application/json");
       response.setCharacterEncoding("UTF-8");
       response.getWriter().write(jsonArray);

因此,我需要传递 jsp 文件返回的 JSOn 对象,而不是 js 文件中的 output.json。该怎么做?

【问题讨论】:

  • 用它来保存你的值,var myVar="<%out.println(obj);%>"; 现在在javascript中使用myVar
  • jsp 中不应包含 java 代码。对 java 代码使用 servlet。使用会话属性临时存储小对象。
  • 你想将值传递给什么?回到服务器:使用一个表单,到同一页面的不同jsp文件,只需设置变量,包含其他jsp即可。
  • @Kelvin 所以test.jsp需要返回json对象,我需要在sample.js中使用
  • @Rishaldevsingh 以及如何在我的 sample.js 文件中使用它?

标签: java json jsp


【解决方案1】:

将该值放入在jsp中具有ID的<div id=""><p id="">标签中,并使用getElementByID在任何js中获取该值。

【讨论】:

  • 请查看我在问题中更新的代码并告诉我如何做到这一点。
【解决方案2】:

在jsp文件中使用这段代码

<input type="hidden" value="<%out.println(obj);%>" id="objValue"/>

在js文件中可以通过id获取值

var objValue = document.getElementById("objValue");

基本上jsp中的脚本不好。

存储在会话范围或请求范围内并使用它,如 servlet 中的 session.setAttribute('obj','value') 和 jsp 中的 value="${obj}"

【讨论】:

  • 我是否需要在 sample.js 文件中导入/调用我的 test.jsp 文件才能做到这一点?
  • 还是在 index.html 中?如果是,那该怎么做呢?
  • 使用 script 标签sample.js 文件包含在您的 test.jsp 文件中,这是一个示例这样做:<script type="text/javascript" src="<%=request.getContextPath() %>/sample.js"></script>
  • 我正在做你所说的,但是我在 js 文件中得到了 jsonArray 的空值。
  • jsp <input type="hidden" value="<%response.getWriter().write(jsonArray);%>" id="objValue"/>js 中使用 var objValue = document.getElementById("objValue");
猜你喜欢
  • 2012-08-04
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多