在 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?谢谢。