0

在 JSP 页面中使用 jquery 的 load() 方法时遇到问题。在第一页中,我试图将属性 list1 设置为请求并使用 load() 将第 2 页的内容加载到第 1 页的“#content”中。

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

那么问题就在这里。request.getAttribute("list1")在第 2 页中返回空指针,经过一些研究,我发现请求没有被发送到第 2 页,所以我无法从请求中检索“list1”。

我不能request.getRequestDispatcher("page2.jsp").forward(request, response)在第 1 页中使用,因为它会将我重定向到 page2.jsp,这不是我打算做的。

是否有任何解决方法可以将请求传递到第 2 页,以便可以在 page2.jsp 中检索 list1?谢谢。

4

1 回答 1

1

把它包起来doc ready

$(function(){
   $("#content").load("page2.jsp");
});
于 2013-03-26T07:53:19.553 回答