有一个home.jsp页面,页面打开时jquery请求后台查询数据$(function(){
$.post("articleAction!queryArticle.action");
});
后台如下

public String queryArticle(){
this.latelyList = this.as.queryArticle();
GetUtil.getSession().setAttribute("latelyList", latelyList);
return null;
}
然后在页面用显示数据list<c:forEach items="${latelyList}" var="vo" varStatus="stat">
<span class="dat">
<span> 
${vo.pubDate } 

</span><br />
${ vo.fileName}
<br/>
作者:${vo.user.userName}
<br/>
<a href="" style="color: #acf">详情</a>
</span>
</c:forEach>
问题来了,home.jsp加载时没有显示数据,但后台的list已经有数据了,home.jsp刷新之后就显示数据了难道是因为home.jsp加载完后后台数据还没有执行完?请教,这个问题怎么解决?

解决方案 »

  1.   

    因为ajax是异步的,把请求发出去后,页面接着执行,这时候你的session里面还没设置值,你刷新后(此时ajax请求已被执行了),session里面有值了,就取出来了
      

  2.   

    所以,应该如果让session里有值了再执行页面?
      

  3.   

    所以,应何如果让session里有值了再执行页面?
      

  4.   

    既然一开始就要干嘛不在加载页面的时候直接放入session呢?
      

  5.   

    好了 结账 本来是想不通过Struts跳转的,直接页面加载数据。买单