我怀疑使用iterator标签访问jsp中的arraylist数组。
在我的动作类中,我使用了以下代码..,
ArrayList[] arr= new ArrayList[10];
for(int i = 0; i < 10; i++) {
arr[i] = new ArrayList<bean>();
}
while (some conditions) {
arr[i].add(new bean(some values));
i++;
}
我的问题是..如何在迭代器中访问arr [0],arr [1] ... arr [n] arraylists ..?
以下代码工作正常..但请改进它以实现我的结果..!
<s:iterator value="display.arr[0]">
...
</s:iterator>
帮助将受到赞赏..!
答案 0 :(得分:0)
我想知道你是否多看了iterator tag documention;至少有3-4种方法可以做到这一点,包括使用"begin"
/ "end"
属性使用立即的索引列表,使用"var"
来保存外部项目(不是严格必要,但IMO更具沟通性等等。
假设bean类中名为"s"
的属性,我称之为SomeBean
:
<s:iterator value="displays" var="display">
<s:iterator value="#display">
${s}<br/>
</s:iterator>
</s:iterator>
使用底部的Java代码,会产生以下输出:
Outer: 0, Inner: 0
Outer: 0, Inner: 1
Outer: 0, Inner: 2
Outer: 1, Inner: 0
Outer: 1, Inner: 1
Outer: 1, Inner: 2
Outer: 2, Inner: 0
Outer: 2, Inner: 1
Outer: 2, Inner: 2
推动此代码的完整操作;我每次只返回一个新列表作为例子:
public class NestedListsAction extends ActionSupport {
public List<List<SomeBean>> getDisplays() {
List<List<SomeBean>> displays = new ArrayList<List<SomeBean>>();
for (int i = 0; i < 3; i++) {
List<SomeBean> innerList = new ArrayList<SomeBean>();
for (int j = 0; j < 3; j++) {
innerList.add(new SomeBean(String.format("Outer: %d, Inner: %d", i, j)));
}
displays.add(innerList);
}
return displays;
}
private class SomeBean {
private String s;
public SomeBean(String s) {
this.s = s;
}
public String getS() {
return s;
}
}
}
请注意SO policy on accepting answers。通常情况下我不会把它带给一个新用户,但IMO我花了更多精力来回答这个问题而不是你研究它,这让我很沮丧。