2011-07-28 19 views
4

我目前正在使用jQuery的Cycle插件顯示圖像幻燈片的Web應用程序。爲了便於使用,我將應用程序配置爲允許某人更改幻燈片圖像可用於顯示的路徑。我已經找到了將所有圖像文件名創建爲一個字符串數組的必要代碼,但是我不完全確定如何將整個數組傳遞迴我的jQuery進行處理。我已經使用Java Servlet作爲訪問某些RSS提要的代理,因此我決定使用「$ .get()」方法創建帶有帶標籤參數的HTTP請求,以確定要執行的功能。將字符串數組從Java Servlet返回給jQuery

長話短說,我如何將一個String數組傳遞給一個HttpServletResponse變量,以便它可以在我的jQuery中像字符串數組一樣訪問?以下是我目前使用的一些代碼... 注意:我對Java和JavaScript(包括jQuery)都是全新的。我知道我的代碼可能是草率和/或效率低下的。

---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 
    } 

回答

1

我會建議使用JSON解析器在Java中,如Jackson到字符串數組,JSON轉換。然後jQuery可以讀取它,並將它變成一個JavaScript數組與jQuery.getJSON