是否可以在具有<div>
循环的<forEach>
中实现实时滚动或延迟滚动。我在<div>
中有以下代码,我想懒洋洋地加载内容。
<div class="update" id="update">
<c:forEach var="p" items="#{statusBean.statusList}"
varStatus="loop">
<h:form>
<c:if test="${p.statusmsg!=null}">
<div class="status">
//content
</div>
</c:if>
</h:form>
</c:forEach>
</div>
答案 0 :(得分:2)
JSTL和EL都只能在页面的视图构建时间内完成(这由服务器完成)。 Ajax请求不属于视图构建时间,因为它们位于客户端浏览器中,因此JSTL和EL无法处理ajax请求。不过,您可以使用如下所述的普通servlet使用ajax:How to use Servlets and Ajax?
由于您在代码中使用JSF(基于使用延迟评估表达式,如#{statusBean.statusList}
和<h:form>
)并假设您使用JSF 2+,因此{{3}中有一个很好的示例}} showcase:OmniFaces,可扩展列表示例显示您可以对@RequestScoped
托管bean进行ajax调用并检索JSON String
并使用它更新客户端的值,如HTML dom。
基于<o:componentIdParam>
的实时滚动示例:
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()){
loadNewData();
}
});
function loadNewData(){
/* add code to fetch new content and add it to the DOM */
}