我是靠谱客的博主 勤奋白云,这篇文章主要介绍Struts 2 标签嵌套以及遍历双层List,现在分享给大家,希望可以做个参考。

用Struts 2的iterator标签来遍历一个含有双层List的嵌套

首先我们从最基础的说起,用iterator标签遍历一个List。

如果Action中有一个这样的不为null的属性:

复制代码
1
1
复制代码
1
private List<T> list;

那么在JSP中,就可以这样来遍历list:

复制代码
1
1 2 3
复制代码
1
2
<s:iterator value="list">
复制代码
1
<s:property value="propertyNameOfObjectInList">
复制代码
1
2
</s:property>
复制代码
1
</s:iterator>

其中的propertyNameOfObjectInList是指list中对象的属性名。

下面我们再来看稍微复杂一点的情况,那就是嵌套使用iterator标签。

假设我们的Action中有如下属性:

复制代码
1
1 2
复制代码
1
private List<T> list1; private List<T> list2;

那么,我们可以在JSP页面上这样来遍历。

复制代码
1
1 2 3 4 5 6
复制代码
1
2
<s:iterator value="list1">
复制代码
1
2
<s:property value="propertyNameOfObjectInList"></s:property>
复制代码
1
2
<s:iterator value="list2" id="inner">
复制代码
1
2
3
<s:property value="#inner.propertyNameOfObjectInList"></s:property> </s:iterator> </s:iterator>

请注意,我们必须给里层的iterator标签加上一个id属性,这样,才能通过#id.propertyNameOfObjectInList来取得我们需要的值。

下面是遍历双层List的情况。

假设Action中有如下属性:

复制代码
1
1
复制代码
1
private List<List<T>> list;

那么,我们在JSP必须这样来遍历:

复制代码
1
1 2 3 4 5
复制代码
1
2
<s:iterator value="list">
复制代码
1
2
<s:iterator value="top" id="inner">
复制代码
1
2
<s:property value="#inner.propertyNameOfObjectInList"></s:property>
复制代码
1
</s:iterator> </s:iterator>

这种情况下,必须把内层的iterator标签的value属性设定为”top”!这个top就代表栈顶。然后再指定id属性,并用”#”作为前缀来取值。

我今天碰到的情况是这样,在Action中:

复制代码
1
1 2
复制代码
1
private List<T> list1; private List<List<T>> list2;

所以当然就要这样遍历啦:

复制代码
1
1 2 3 4 5 6 7 8
复制代码
1
2
<s:iterator value="list1">
复制代码
1
2
<s:property value="propertyNameOfObjectInList"></s:property>
复制代码
1
2
<s:iterator value="list2">
复制代码
1
2
<s:iterator value="top" id="inner">
复制代码
1
2
<s:property value="#inner.propertyNameOfObjectInList"></s:property>
复制代码
1
2
</s:iterator>
复制代码
1
</s:iterator>
复制代码
1
</s:iterator>

最后

以上就是勤奋白云最近收集整理的关于Struts 2 标签嵌套以及遍历双层List的全部内容,更多相关Struts内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(84)

评论列表共有 0 条评论

立即
投稿
返回
顶部