首先是实体类:
实体类1:TrainingCourseClassAttendHistory.java
- Java code
private Integer attendRecordId; private Integer applicationId; private Integer attendPercentage; private Integer cpdId; private Integer mpfCpdCore; private Integer mpfCpdNonCore; private Integer cpt; private String createdBy; private Timestamp createDate; private Set<TrainingCourseClassAttendPeriod> trainingCourseClassAttendPeriod = null;set/get省略
实体类2:TrainingCourseClassAttendPeriod.java
- Java code
private Integer id; private Integer attendRecordId; private Timestamp attendDate; private Boolean attendAmSession; private Boolean attendPmSession;
两个实体类通过attendRecordId连接。现在要实现s:iterator显示TrainingCourseClassAttendHistory.java,在其内部再显示第二个实体类的内容。
效果如下:
显示是可以的,但是再次保存这些数据的时候就不行了。
显示时用的是List<TrainingCourseClassAttendHistory>
保存时也是用的List<TrainingCourseClassAttendHistory>
------解决方案--------------------
<s:iterator var="t" item="${TrainingCourseClassAttendHistory}">
.........
<s:iterator var="t2" item="${t.TrainingCourseClassAttendPeriod}">
........
</s:iterator>
</s:iterator>
应该就是差不多这样的结构,iterator里面的两个属性可能记错。到时候要是错的话,你换一下就行了。
------解决方案--------------------
哈哈。。。这其实我也有点弄不懂。好像是你以前问过这个嵌套的问题,我回答的
你在后台把List里面嵌套的集合遍历一遍。只需要遍历一边,不用做其它的操作
再试试。。。我以前就是这么解决的
- Java code
public List<Role> selRole(int currentPage) { session = sf.getCurrentSession(); Query query = session.createQuery("from Role"); query.setFirstResult((currentPage - 1) * RPAGESIZE); query.setMaxResults(RPAGESIZE); List<Role> list = query.list(); for (int i = 0; i < list.size(); i++) { Iterator it = list.get(i).getStates().iterator(); while (it.hasNext()) { State s = (State) it.next(); } } return query.list(); }
------解决方案--------------------
意思是提交保存?不是name与之相对应不就好了
<s:iterator value="firstList" status="stu" var="xxx">
<input name="firstList[${stu.index}].xxx1"/>
<s:iterator value="xxx.secondList" status="stud" var="xxxx">
<input name="firstList[${stu.index}].secondList[${stud.index}].xxxx1" />
</s:iterator>
</s:iterator>