Ajax 局部刷新迭代器的内容


新人第一次咨询、最近在做个网站的、有个地方是想这样做的、就是滑动到下面、然后或触发滑动刷新事件、接着就通过ajax发送请求给action,之后从action获得数据后、局部更新内容、但现在的问题是、大部分地方都没问题了、就是我从action获得了更新了的内容之后、如何能把数据更新到迭代器中、是使用struct2的s:iterator这个迭代器。求指点,代码如下:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
var totalheight = 0;

function loadData()
{
totalheight = parseFloat($(window).height()) + parseFloat($(window).scrollTop());

if ($(document).height() <= totalheight)
{
//加载数据
doStart();
}
}

$(window).scroll( function() {
console.log("滚动条到顶部的垂直高度: "+$(document).scrollTop());
console.log("页面的文档高度 :"+$(document).height());
console.log('浏览器的高度:'+$(window).height());
loadData();
});

var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function doStart() {
createXMLHttpRequest();
var url = "PersonInfoCenter.action";
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = gethello;
xmlHttp.send();
}
function gethello() {
if (xmlHttp.readyState == 4) {

//下面三行代码是测试的,测试从request返回的index是否能更新,结果是可以的,但是迭代器的就没思路了。
var str = "${requestScope.index}"
$("#container").append(str);
$("#container").append("dd<br/>dd<br/>dd<br/>");
}
}
</script>
</head>
<body>

<div id="container">
dd<br/>dd<br/>dd<br/>
</div>

<table id="table" width="100%" cellpadding="6" cellspacing="50" >

<!-- 循环输出 -->
<s:iterator value="#request.article" id="art">
<tr height="80">
<td bgcolor="#1582AB">
<font class="chinesefont105main"> <!-- 文章标题 -->

<div>
<!-- 发表人-->
好友:<s:property value="#art.username"/>

<!-- 发表日志 -->

发表了日志(<s:property value="#art.title"/>)
</div>
<div align="right">
时间:<s:date name="#art.date"/>
</div>
</td>
</tr>
</s:iterator>

</table>

</body>

我是使用S2SH框架的,把返回的数据保存在request.setAttribute, 求大神指点感激不尽啊

Ajax JSP

du32167 11 years, 8 months ago

兄弟,迭代器是在strut内的,数据到页面就无能为力了,采用ajax获得数据就直接在页尾追加就ok了(看你加了jquery,也没怎么用)

flashenix answered 11 years, 8 months ago

Your Answer