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;" />

2 ページ目では、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")in page 2 は null ポインターを返し、いくつかの調査の結果、リクエストがページ 2 に送信されていないことが判明したため、リクエストから「list1」を取得できません。

request.getRequestDispatcher("page2.jsp").forward(request, response)page2.jsp にリダイレクトされるため、ページ 1では使用できません。これは意図したことではありません。

page2.jsp で list1 を取得できるように、リクエストをページ 2 に渡すことができる回避策はありますか? ありがとう。

4

1 に答える 1

1

でラップしdoc readyます:

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