struts2,s:iterator遍历的问题

NbrUsed的model中将类Level做成员变量在遍历NbrUsed的时候怎么遍历到Level的变量net呢list代码:while(rs.next()){nbrUs... NbrUsed的model中将类Level做成员变量
在遍历NbrUsed的时候怎么遍历到Level的变量net呢
list代码:
while(rs.next()) {
nbrUsed = new NbrUsed();
nbrUsed.setRegion(rs.getString(1));
nbrUsed.setNbr(rs.getString(2));
level.setNet(rs.getString(3));
nbrUsed.setLevel(level);
}
遍历代码:
<s:iterator value="nbrUseds" var = "nbrUsed">
<tr>
<td>
<s:property value="#nbrUsed.region"/>
</td>
<td>
<s:property value="#nbrUsed.nbr"/>
</td>
<td>
<s:property value="#nbrUsed.level.net"/>
</td>
</tr>

这样出来的net都一样
展开
 我来答
tenderlitch
2013-05-31 · TA获得超过174个赞
知道小有建树答主
回答量:72
采纳率:0%
帮助的人:120万
展开全部

你好楼主,看了你和楼上几位同学的讨论,我觉得你有可能是这个问题:

level.setNet(rs.getString(3));//这里我发现你并没有声明level,说明level是在外边声明的

这样子你每个nbrUsed里边都持有一个相同的level引用,

每一次循环你都改变了level中net的值,其实你是改变了所有nbrUserd中level的net的值,

所以你的页面显示的NET是你最后一次设置的net值,


你可能没注意mcyusxli给你的代码和你的有一个不同的地方

那就是循环里他有一句Level lvl=new Level();

这样每个nbrUsed都持有自己的Level引用,就不会因为后边设值而影响到前边了


希望对你有用^_^.

lyitem000
2013-05-30 · 超过24用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:87.1万
展开全部
<s:iterator value="nbrUseds" var = "nbrUsed">
nbrUseds是存放nbrUsed的list吗
追问
是的呀。遍历出来的net都是数据表最后一行的net值。不知道为啥?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mcyusxli
2013-05-30 · 超过26用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:72.8万
展开全部
nbrUsed.setLevel(level);你设的值是一样的喽。你跟踪一下,应该是你设置的level值是一样的,所以显示一样嘛
更多追问追答
追问
不一样呀,list方法遍历的就是表里面的值,表里面net的值是不一样的呀,而且list方法里用System.out.println(nbrUsed.getLevel().getNet());打印出来也正常,就是最后显示的时候全部是一样的值
追答
你是不是
List nbrUseds=new ArrayList();
while(rs.next()) {
nbrUsed = new NbrUsed();
nbrUsed.setRegion(rs.getString(1));
nbrUsed.setNbr(rs.getString(2));
level.setNet(rs.getString(3));
nbrUsed.setLevel(level);
nbrUseds.add(nbrUsed);
}
request.setAttribute("nbrUseds",nbrUsed);
jsp 中

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式