日期:2014-05-17  浏览次数:20694 次

请教一下关于jquery与c:forEach的问题
有一个home.jsp页面,页面打开时jquery请求后台查询数据
JScript code

$(function(){
$.post("articleAction!queryArticle.action");
});



后台如下
Java code
    
public String queryArticle(){
this.latelyList = this.as.queryArticle();
    GetUtil.getSession().setAttribute("latelyList", latelyList);
    return null;
    }



然后在页面用显示数据list
HTML code

<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加载完后后台数据还没有执行完?

请教,这个问题怎么解决?

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

------解决方案--------------------
既然一开始就要干嘛不在加载页面的时候直接放入session呢?
------解决方案--------------------
不要通过Ajax请求就可以