<s:iterator>标签 ,一对多用法求解

J2EE 码拜 9年前 (2015-05-10) 1065次浏览 0个评论
 

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部分,不过换了几个配置还是出不来,忘大伙解答下,多谢

10分
红色的部分要写到 ,迭代标签里面,因为Area 是迭代出来的 ,
引用 1 楼 u012463264 的回复:

红色的部分要写到 ,迭代标签里面,因为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>,看是否是判断有问题啊。。。。。。
楼主怎么解决的?我现在也遇到相同的问题了。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明<s:iterator>标签 ,一对多用法求解
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!