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); 前台 <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” />无法显示 红色部分无法显示,请问各位,应该怎么写才对,配置文件是不是配得有问题fetch部分,不过换了几个配置还是出不来,忘大伙解答下,多谢 |
|
10分 |
红色的部分要写到 ,迭代标签里面,因为Area 是迭代出来的 ,
|
呃··· 我已经写进去了 |
|
10分 |
你那个 project 也是一个list,而不是一个对象,因此,输出需要 用迭代
|
<s:iterator value=”#request.areaList” id=”Area” var=”a” >
<tr> <s:iterator value=”#Area.project” id=”projects” var=”b”> <s:if test=”#a.id==#b.areaI”> <td> <s:property value=”#projects.name” /></td> </s:iterator> </tr> </s:iterator> 从多查出一已经可以出来来了 但上面这个从一查出多好像又问题 红色部分出不来 |
|
UP一次 哎~
|
|
10分 |
<s:if test=”#a.id==#b.areaI”>
<td> <s:property value=”#projects.name” /></td>,这里都没</s:if>。你在加一个<s:else>aaaa</s:else>,看是否是判断有问题啊。。。。。。 |
楼主怎么解决的?我现在也遇到相同的问题了。
|