如何让jQuery访问JavaServlets中的Java arraylist?
我在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,您应该使用:如何让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。 您可以做的是
String json = (new JSONArray(yourList)).toString();
在jquery中的mouseclick上使用如下命令:-
var list= <%= json %>;
var列表=;
这里有一个Ajax解决方案:在servlet端,您必须在doGet或doPost方法中编写一个逻辑,该方法以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'…)