我们如何告诉 jQuery 访问 JavaServlet 中的 Java 数组列表?

发布于 2024-12-14 21:57:01 字数 192 浏览 0 评论 0原文

我在我的 Web 应用程序中使用 Java servlet 和 JSP。我的问题是我如何告诉 jQuery 访问 java 数组列表。例如,我想在我的页面中显示书籍列表,并且我正在使用 java servlet 获取这些书籍的列表。现在我想告诉 jQuery,如果单击特定按钮,则在该页面中显示这些书籍。我怎样才能做到这一点?或者还有其他方法可以做到这一点吗?提前致谢。

I am using Java servlets and JSP in my web application. My question is that how can i tell jQuery to access a java arraylist. For example i want to show a list of books in my page and i am getting list of those books using java servlet. Now i want to tell jQuery that if a specific button is clicked then show these books in that page. How can i do that? Or is there any other way to do that? Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

堇年纸鸢 2024-12-21 21:57:01

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

您可以查看 http://code.google.com/p/google-gson/ ,这是最好的 Java-JSON 库之一。

jQuery is a client side framework, it can not access the arraylist. Servlets/JSP are server side. When jQuery sees the page, its just plain html.
What you can do is, convert your arraylist to JSON, and then output the json string in your JSP. jQuery can use the json string to display data on page.

You can have a look at http://code.google.com/p/google-gson/, which is one of the best Java-JSON library available.

囍笑 2024-12-21 21:57:01

您应该使用 Json Library 来将 ArrayList 序列化为 JSON:

     String json = (new JSONArray(yourList)).toString();

并在 jquery 中的 mouseclick 上使用它,例如:-

     var list= <%= json %>;

You should use Json Library in order to serialize your ArrayList to JSON:

     String json = (new JSONArray(yourList)).toString();

And use this on mouseclick in jquery like :-

     var list= <%= json %>;
耳钉梦 2024-12-21 21:57:01

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

$.get('getlist', function(data) {
  $('#Listdiv').html(data);
});

Listdiv 是显示列表的 DIV 的 id。 getlist 是您的 servlet 将响应的 URI。

将 HTML 内容生成为 String 并将其写入 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'...)

Here is an Ajax solution: In the servlet side, you have to write a logic in doGet or doPost method, which returns the contents of the list in XML, JSON or HTML.
In client-side you have to write a logic which interprets and displays this data. In case of HTML, you just have to put the content into a DIV. In case of JSON or XML, you have to use further JQuery components (plugins) for example jqGrid. A simple example on client side for the HTML-based solution:

$.get('getlist', function(data) {
  $('#Listdiv').html(data);
});

Listdiv is the id of a DIV where the list will be displayed. getlist is the URI which your servlet will respond for.

Generating HTML content into String and write it into the HttpServletOutputStream isn't an issue:

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();
}

If you don't want to create a separated servlet, you can also use HTML content generated by JSP. In this case, you can put the JSP uri into the Ajax call: $.get('getlist.jsp'...)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文