繁体   English   中英

将Java数组从Java Servlet返回到jQuery

[英]Returning an String Array from a Java Servlet to jQuery

我目前正在开发一个Web应用程序,它使用适用于jQuery的Cycle插件显示图像的幻灯片。 为了便于使用,我正在使应用程序可配置,允许某人更改可以找到幻灯片图像进行显示的路径。 我已经找到了将所有图像文件名创建到一个String数组中的必要代码,但我不完全确定如何将整个数组传递回我的jQuery进行处理。 我已经使用Java Servlet作为代理来访问某些RSS源,因此我决定使用“$ .get()”方法来生成带有标记参数的HTTP请求,以确定要执行的功能。

简而言之,我如何将一个String数组传递给一个HttpServletResponse变量,以便可以像我的jQuery中的String数组一样访问它? 这是我到目前为止使用的一些代码...... 注意:我对Java和JavaScript都很陌生,包括jQuery。 我知道我的代码可能很邋and和/或效率低下。

---HERE'S THE JAVA SERVLET----

    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.net.URL;

    import javax.servlet.http.HttpServlet;

    public class BBSServlet extends HttpServlet {
        private void getSlidesList(final HttpServletResponse response) throws ServletException, IOException {
            try {
                File slidesdir = new File(AppConfiguration.getInstance().getSlidesDir());

                if(slidesdir.isDirectory()) {
                    String slidenames[] = slidesdir.list();
                    // This is what I thought I could do...
                final PrintWriter writer = response.getWriter();

                for(int i = 0; i < slidenames.length; i++) {
                    writer.println(slidenames[i]);
                }
                // But I'm not sure if it works...                  }
            } catch(final IOException e) {
                e.printStackTrace();
            }
        }
        public void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
            response.setContentType("text/xml");
            final URL url;

            if(request.getParameter("p").equals("w")) {
                url = new URL(AppConfiguration.getInstance().getForecastUrl());
                sendXML(response, url);
            }
            else if(request.getParameter("p").equals("n")) {
                url = new URL(AppConfiguration.getInstance().getNewsUrl());
                sendXML(response, url);
            }
            else if(request.getParameter("P").equals("f")) {
                getSlidesList(response);
            }
        }
    }

---jQuery js------------

    // function called from the $(document).ready()

    function DisplaySlides() {
        $.get(baseContext + "/servlet?p=f", function(data) {
            // "data" is hopefully a String array?
        }
        // display my slideshow with that array
    }

我建议使用Java中的JSON Parser(如Jackson)将字符串数组转换为JSON。 然后jQuery可以读取它并使用jQuery.getJSON将其转换为javascript数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM