转发后如何在JSP上打印?

时间:2015-06-21 22:45:37

标签: java json jsp servlets

这是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数组。

1 个答案:

答案 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了。它,如果您设置了正确的数据格式,您将获得所需的输出。