2013-03-26 20 views
0

在JSP頁面中使用jquery的load()方法時遇到問題。在第一頁中,我試圖將屬性list1設置爲請求,並使用load()將頁面2的內容加載到頁面1的「#content」中。當使用jquery加載方法時,JSP請求不會傳遞到另一個jsp頁面

<% 
    ArrayList<String> list1 = new ArrayList<String>(); 
    request.setAttribute("list1", list1); 
%> 

<script> 
    (function($) { 
     $(document).ready(function() { 
      $.ajaxSetup({ 
       cache: false, 
       beforeSend: function() { 
        $('#RSSList').hide(); 
        $('#loading').show(); 
       }, 
       complete: function() { 
        $('#loading').hide(); 
        $('#RSSList').show(); 
       }, 
       success: function() { 
        $('#loading').hide(); 
        $('#RSSList').show(); 
       } 
      }); 
      var refreshId = setInterval( 
          function() { 
           $("#content").load("page2.jsp"); 
          }, 9000); 
     }); 
    })(jQuery); 
</script> 

<div id="content"></div> 
<img src="images/loading.gif" id="loading" alt="loading" style="display:none;" /> 

在第二頁中,list1的正在從請求檢索和通過out.println被輸出之前做一些處理()

<% 
    ArrayList<String> list2 = (ArrayList<String>) request.getAttribute("list1"); 

    // process list2 here 

    if (list2==null){ 
     out.println("list2 is null"); 
    } else { 
     // out.println() contents of list2 
    } 
%> 

然後這裏是問題所在。第2頁中的request.getAttribute("list1")返回空指針,經過一些研究後,我發現請求沒有發送到第2頁,因此我無法從請求中檢索「list1」。

我不能在第1頁使用request.getRequestDispatcher("page2.jsp").forward(request, response),因爲它會將我重定向到page2.jsp,這不是我想要做的。

是否有任何解決方法,我可以將請求傳遞給第2頁,以便我可以檢索page2.jsp中的list1?謝謝。

回答

1

敷在doc ready

$(function(){ 
    $("#content").load("page2.jsp"); 
}); 
+0

你的意思是,所有在page2.jsp JSP代碼將被加載到「內容」的Page1.jsp? – brooksky 2013-03-26 08:03:06

+0

不是代碼,而是根據html生成輸出。 – Jai 2013-03-26 08:13:12

+0

但這裏的問題是,page2.jsp無法獲得list1進行額外的處理,然後輸出爲HTML – brooksky 2013-03-26 08:19:03

相關問題