2015-06-21 23 views
0

這裏是servlet部分:如何在轉發之後在JSP上打印?

Gson gson = new GsonBuilder().setPrettyPrinting().create(); 
session.getAttribute("XMLData"); 
String jsonArray = gson.toJson(xmlFromDB); 
RequestDispatcher reqDis = request.getRequestDispatcher("/index.jsp"); 
reqDis.forward(request, response); 
response.getWriter().print(jsonArray); 

JSP:

<body> 
    <div align="center"> 
     <table id="list"> 
      <tr> 
       <td /> 
      </tr> 
     </table> 
    </div> 
    <div id="pager"></div> 
</body> 

js文件:

jQuery(document).ready(function() { 
$("#list").jqGrid({ 
    url : "GridServlet", 
    datatype : "json", 
    mtype : 'POST', 
    ... 
}); 

但是當我轉發到index.jsp,則顯示空白JQ電網,而不是json數組,我正在打印。

+0

您是否在轉發之前嘗試寫入響應? –

回答

0

首先確保您的servlet URL pattern匹配URL屬性在js文件中並且js包含在index.jsp中。

從你的servlet刪除此:

RequestDispatcher reqDis = request.getRequestDispatcher("/index.jsp"); 
reqDis.forward(request, response); 

轉發請求花費控制在servlet和把它作爲你這麼不從servlet響應發生寫入響應之前轉發請求JSP頁面。還有一件事你不需要在這個例子中運行servlet,只要你包含js fileindex.jsp中比你只需要運行index.jsp就是這樣,如果你設置了正確的數據格式,你將得到你想要的輸出。