private Integer[] routeId; private String[] routeName;
我已经声明了这个数组和 getter setter。现在我想在迭代器中设置它的值,如下所示:
Iterator<Object> iter=tManager.getApprovedTourPlan(staffId,9).iterator();
tourList=new ArrayList<TourPlan>();
int i=0; while(iter.hasNext()) {
Object[] tour = (Object[]) iter.next();
TourPlan tp=new TourPlan();
tp.setRouteId(0);
tp.setRouteName("asd");
tourList.add(tp);
}
在 jsp 上,我将使用:
<s:iterator list="tourList" var="tour"> <s:property
name="#tour.routeId"> <s:property name="#tour.routeName">
</s:iterator>
但是当我设置值时:
tp.setRouteId(0);
tp.setRouteName("asd");
我无法设置值,因为它们接受数组。请告诉我如何处理。
从我得到的,你所需要的只是嵌套的迭代器,它们看起来像这样
<s:iterator value="lstBean" id="lstBean" status="outerStat">
<s:textfield value="%{name}" name="lstBean[%{#outerStat.index}].name"/>
<s:textfield value="%{amt}" name="lstBean[%{#outerStat.index}].amt"/>
<s:textfield value="%{id}" name="lstBean[%{#outerStat.index}].id"/>
<s:iterator value="%{lstString}" status="myStat">
<s:textfield name="lstBean[%{#outerStat.index}].lstString[%{#myStat.index}]"/>
</s:iterator>
</s:iterator>
和
class XBean
{
private ArrayList<String> lstString=new ArrayList<String>();
private String name;
private Double amt;
private Integer id;
}
例子
http://www.onlinexamples.com/showfullexample.action?idexamples=10&title=Nested%20Iterators%20Example
http://www.onlinexamples.com/showfullexample.action?idexamples=11&title=Iterator%20over%20an%20array/list%20of%20objects/beans