如何实现双重for循环

lcz383546469 2010-10-16 12:05:36
问题是这样的:

SubTypeDaoImpl subtypedao = new SubTypeDaoImpl();
//System.out.println(spid+"spid");
List list = subtypedao.getSubTypeBySpid(spid);//得到一级列表

System.out.println(list.size());
for (int i = 0; i < list.size(); i++) {
SubType subtype =new SubType();
subtype=(SubType)list.get(i);

System.out.println(subtype.getTypename()+"spid");
/**
* 二级商品列表展示
*/
GoodsBizImpl goodsbiz=new GoodsBizImpl();
List listgoods = new ArrayList();
Goods goods = new Goods();
System.out.println(subtype);
listgoods=goodsbiz.getGoodsBysbid(subtype.getSbid());//得到二级列表二级循环的id是依赖一级列表的 for (int j = 0; j < listgoods.size(); j++) {
goods=(Goods)listgoods.get(j);
}
request.put("listgoods", listgoods);
}
request.put("subtype",list);


出的问题是二级循环只能取出最后一条 我找了哈问题出在一级循环的时候没有存subtype.getSbid()即spid 但是我不知道怎么存哪个id那位好人指点指点
...全文
427 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sowuqing 2010-10-17
  • 打赏
  • 举报
回复
SubTypeDaoImpl subtypedao = new SubTypeDaoImpl();
//System.out.println(spid+"spid");
List list = subtypedao.getSubTypeBySpid(spid);//得到一级列表

System.out.println(list.size());
for (int i = 0; i < list.size(); i++) {
SubType subtype=(SubType)list.get(i);

System.out.println(subtype.getTypename()+"spid");
/**
* 二级商品列表展示
*/
GoodsBizImpl goodsbiz=new GoodsBizImpl();
List listgoods = new ArrayList();
System.out.println(subtype);
listgoods=goodsbiz.getGoodsBysbid(subtype.getSbid());//得到二级列表二级循环的id是依赖一级列表的 for (int j = 0; j < listgoods.size(); j++) {
Goods goods=(Goods)listgoods.get(j);
}
request.put("listgoods", listgoods);
}
request.put("subtype",list);

Goods 对象不要在外面实例化,那样是错了,它认为添加的是同一个对象,我以前也遇到过。
ntntime 2010-10-16
  • 打赏
  • 举报
回复
在循环外层声明一个变量用于存储ID,可以用LIST或者MAP来存储。

在循环里将所需要的ID存储到集合内即可。
xiatiandetonghua 2010-10-16
  • 打赏
  • 举报
回复
好强大
lcz383546469 2010-10-16
  • 打赏
  • 举报
回复
页面展示
<s:iterator id="listsuper" value="#request.listsuperbiz">
<TR>
<TD bgColor=#ffffff>
<TABLE class=hei border=0 cellSpacing=0 cellPadding=0
width="100%"><TBODY>
<TR>
<TD vAlign=top width=47><IMG alt=""
src="../${listsuper.typePicture}"
width=47 height=67></TD>
<TD vAlign=top>
<TABLE border=0 cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD class="anhong fb" height=25><IMG
src="../images/style/arrow.gif" width=12 height=11>${listsuper.typeName }</TD></TR>
<TR>
<TD>

<s:iterator id="listsub" value="#request.listsub">
<A href="../subtypeSubType?spid=${listsub.spid }">${listsub.typename } /</A>
</s:iterator>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>

</s:iterator>
_LiuHui 2010-10-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 doingwell 的回复:]
不知道你前台的展现形式,但是你这么做request 里面的listgoods对象肯定是只有最后一个被保存下来了,我在你的基础上改了一下。把你页面的代码贴上来看看。

Java code

SubTypeDaoImpl subtypedao = new SubTypeDaoImpl();
//System.out.println(spid+"spid");
List list = sub……
[/Quote]
差不多。
doingwell 2010-10-16
  • 打赏
  • 举报
回复
不知道你前台的展现形式,但是你这么做request 里面的listgoods对象肯定是只有最后一个被保存下来了,我在你的基础上改了一下。把你页面的代码贴上来看看。

SubTypeDaoImpl subtypedao = new SubTypeDaoImpl();
//System.out.println(spid+"spid");
List list = subtypedao.getSubTypeBySpid(spid);//得到一级列表

System.out.println(list.size());
List listgoods = new ArrayList();
for (int i = 0; i < list.size(); i++) {
SubType subtype =new SubType();
subtype=(SubType)list.get(i);

System.out.println(subtype.getTypename()+"spid");
/**
* 二级商品列表展示
*/
GoodsBizImpl goodsbiz=new GoodsBizImpl();
Goods goods = new Goods();
System.out.println(subtype);
List tmplist=goodsbiz.getGoodsBysbid(subtype.getSbid());//得到二级列表二级循环的id是依赖一级列表的
for(int j = 0; j < tmpList.size(); j++){
listgoods.add(tmpList.get(j));
}

for (int j = 0; j < listgoods.size(); j++) {
goods=(Goods)listgoods.get(j);
}
}
request.put("listgoods", listgoods);
request.put("subtype",list);

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧