2016-09-07 353 views
-3

我有一個jsp頁面,它具有java scriplets,並且使用out.println(obj)顯示所需的輸出,但是我想返回這個'obj',以便這些值可以在另一個js文件中使用。如何從jsp頁面返回這個?如何從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(); 
} 

JSP文件返回Jsonarray:

JSONArray jsonArray = new JSONArray(orderDetailsList1); 

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

所以,與其在js文件output.json我需要通過由返回的JSON對象jsp文件。怎麼做?

+0

用這個來保存你的值'var myVar =「<%out.println(obj);%>」;'現在在JavaScript裏面使用'myVar'。 –

+0

jsp不應該在其中包含java代碼。使用servlet進行java代碼。使用會話屬性臨時存儲小對象。 –

+0

你想把價值傳遞給什麼?回到服務器:使用表單,在同一頁面上的不同jsp文件,只需設置變量,幷包含其他jsp。 – Kelvin

回答

0

將該值放入<div id=""><p id="">標記中,該標記在jsp中具有ID,並使用getElementByID在任何js中獲取該值。

+0

請看看我在這個問題中更新的代碼,並告訴我該怎麼做。 – Shek

1

使用此代碼在JSP文件

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

在js文件,你可以通過它的id

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

基本上scriplets在jsp得到的值不好。

存儲在會話範圍或請求範圍內並使用它,如servlet中的session.setAttribute('obj','value')和jsp中的value="${obj}"

+0

我是否需要在sample.js文件中導入/調用我的test.jsp文件才能做到這一點? – Shek

+0

或者在index.html中?如果是的話,那該怎麼做? – Shek

+0

使用**腳本標籤**在** test.jsp **文件中包含** sample.js **文件,這裏是一個例子:'' – Poornima