在Struts2中遍历List的问题

在list.jsp页面中遍历list对象

list对象大概结构如下:

[list]
[*]id,name,fid,decs,zt
[*]1,a,0,a,0
[*]2,b,1,b,0
[*]3,c,1,c,0
[/list]

fid是父节点id。
用s:iterator来遍历

编号:
名称:
父节点名称:

/s:iterator

9个回答

[quote]在页面中把获取的list分别赋给两个变量 [/quote] 你是两个循环了。也可以,但数据过多会影响性能。

我认为这个在查询的时候用sql语句来获得父节点name,然后在放到bean里面,再放到List里面,遍历的时候就很容易了。改下sql。

你可以在action里面先把list遍历一下,采用递归按照节点顺序排序。然后重新加到一个对象里面去。在页面上处理比较麻烦。

[quote] [/quote] 做判断的时候出现了问题吧? 是0 还是‘0’。

这个问题你要在action取数的时候就要确保数据的连续性,就是父节点后面全是自己的子节点,
也就是:

父1 --子11
--子12
父2 --子21
父3 --子31
--子32
[code="sql"]
SELECT t1.id AS prtId, t1.name AS pName, t1.pid AS prtPid, ISNULL(t2.id, 0) AS id, ISNULL(t2.name, '') AS name, ISNULL(t2.pid, 0) AS pid FROM type t1 LEFT OUTER JOIN
type t2 ON t1.id = t2.pid
WHERE (t1.pid = 0)
[/code]

hibernate你没有建立关系可以使用视图。

不过你也可以考虑使用



显示父节点,或者做其他事(主要思路是父节点不同时才显示)
/s:if
显示每个子节点,或者做其他事

/s:iterator

你在后台中先将子节点编号,子节点,父节点编号,父节点名称 这些要展示的字段写成一个bean 然后 在后台将组合得到的具体bean 放入到 list ,在前台只负责显示,这才是正确的思路,前台不要做复杂的逻辑。


/s:if

//用
//,这样你就可以取出对应的子数据了!!!

//进入这层循环后#fl已经失效


/s:if
/s:iterator
/s:else
/s:iterator

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问