这是servlet部分:
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 file:
jQuery(document).ready(function() {
$("#list").jqGrid({
url : "GridServlet",
datatype : "json",
mtype : 'POST',
...
});
但是当我转发到index.jsp
时,会显示空白的jq网格,而不是我正在打印的json数组。
答案 0 :(得分:0)
首先确保您的servlet URL pattern
匹配js文件中的URL
属性,并且js包含在index.jsp
中。
从servlet中删除它:
RequestDispatcher reqDis = request.getRequestDispatcher("/index.jsp");
reqDis.forward(request, response);
转发请求从servlet获取控制权并在写入响应之前将转发请求传递给jsp页面,因此servlet没有响应。只要您在js file
中包含index.jsp
而不是只需要运行index.jsp
,您就不需要在此示例中运行servlet了。它,如果您设置了正确的数据格式,您将获得所需的输出。