Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让jQuery访问JavaServlets中的Java arraylist?_Java_Jsp_Jquery_Servlets - Fatal编程技术网

如何让jQuery访问JavaServlets中的Java arraylist?

如何让jQuery访问JavaServlets中的Java arraylist?,java,jsp,jquery,servlets,Java,Jsp,Jquery,Servlets,我在web应用程序中使用Java servlet和JSP。我的问题是如何告诉jQuery访问java arraylist。例如,我想在我的页面中显示一个图书列表,我正在使用Javaservlet获取这些图书的列表。现在我想告诉jQuery,如果单击了一个特定的按钮,那么在该页面中显示这些书籍。我该怎么做?还是有其他方法可以做到这一点?提前谢谢 jQuery是客户端框架,它无法访问arraylist。servlet/JSP是服务器端的。当jQuery看到页面时,它只是普通的html。 您可以做的是

我在web应用程序中使用Java servlet和JSP。我的问题是如何告诉jQuery访问java arraylist。例如,我想在我的页面中显示一个图书列表,我正在使用Javaservlet获取这些图书的列表。现在我想告诉jQuery,如果单击了一个特定的按钮,那么在该页面中显示这些书籍。我该怎么做?还是有其他方法可以做到这一点?提前谢谢

jQuery是客户端框架,它无法访问arraylist。servlet/JSP是服务器端的。当jQuery看到页面时,它只是普通的html。 您可以做的是,将arraylist转换为JSON,然后在JSP中输出JSON字符串。jQuery可以使用json字符串在页面上显示数据

您可以看看,这是可用的最好的Java JSON库之一。

要将ArrayList序列化为JSON,您应该使用:

     String json = (new JSONArray(yourList)).toString();
在jquery中的mouseclick上使用如下命令:-

     var list= <%= json %>;
var列表=;

这里有一个Ajax解决方案:在servlet端,您必须在doGetdoPost方法中编写一个逻辑,该方法以XML、JSON或HTML返回列表的内容。 在客户端,您必须编写一个逻辑来解释和显示这些数据。对于HTML,您只需将内容放入DIV。对于JSON或XML,您必须使用更多的JQuery组件(插件),例如jqGrid。基于HTML的解决方案客户端的一个简单示例:

$.get('getlist', function(data) {
  $('#Listdiv').html(data);
});
Listdiv是将显示列表的DIV的idgetlist是servlet将响应的URI

将HTML内容生成为字符串并将其写入HttpServletOutputStream不是问题:

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    String result = null;
          //TODO generate HTML  into 'result' here
    Writer out = new OutputStreamWriter(resp.getOutputStream(), "utf-8");
    resp.setContentType("text/html");
    out.write(result);
    out.close();
}
如果不想创建单独的servlet,还可以使用JSP生成的HTML内容。在本例中,您可以将JSP uri放入Ajax调用中:$.get('getlist.JSP'…)