<s:iterator>标签 ,一对多用法求解
Area与Project是一对多关系 SSH框架用<s:iterator>标签时,如何通过一查出多,或多查出一
Area.java
public class Area {
private int id;
private String name;
private Set<Project> project=new HashSet<Project>();
Area.hbm.xml
<set name="project" inverse="true" cascade="all,delete-orphan" lazy="false">
<key>
<column name="area_id" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="com.paiwei.site.entity.Project" />
</set>
Project.java
public class Project {
private int id;
private String name;
private Area area;
Project.hbm.xml
<many-to-one name="area" class="com.paiwei.site.entity.Area" fetch="select" lazy="false">
<column name="area_id" precision="255" scale="0" />
</many-to-one>
后台request.setAttribute("projectList", projectList);
request.setAttribute("areaList", areaList);
前台
<s:iterator value="#request.projectList" id="Project">
<tr>
<td>${name}!!! <s:property value="#Project.area.name" /></td>
</s:iterator>
<s:property value="#Project.area.name" />无法显示
<s:iterator value="#request.areaList" id="Area" >
<tr>
<s:iterator value="#Area.project" id="projects">
<td> <s:property value="#projects.name" /></td>
</s:iterator>
<td>${name}!!!<s:property value="#Area.project.name" />???<s:property value="#Area.name" /></td>
</tr>
</s:iterator>
<s:property value="#Area.project.name" />
红色部分无法显示,请问各位,应该怎么写才对,配置文件是不是配得有问题fetch部分,不过换了几个配置还是出不来,忘大伙解答下,多谢
------解决方案--------------------红色的部分要写到 ,迭代标签里面,因为Area 是迭代出来的 ,
------解决方案--------------------你那个 project 也是一个list,而不是一个对象,因此,输出需要 用迭代
------解决方案-------------------- <s:if test="#a.id==#b.areaI">
<td> <s:property value="#projects.name" /></td>,这里都没</s:if>。你在加一个<s:else>aaaa</s:else>,看是否是判断有问题啊。。。。。。