JSTL⽤<c:forEach>遍历对象集合,⽽对象内含有集合属性JSTL⽤<c:forEach>遍历对象集合,⽽对象内含有集合属性
通过jstl遍历⼀个⾃定义的实体类集合,⽽这个实体类的属性中还有⼀个集合属性。
⽐如以下的例⼦:
有多个学⽣,每个学⽣都有多个盆友
// 学⽣类
public class Student{
private Integer sid;
private String sname;
private List<Friend> friendList;
}
// 盆友类
public class Friend{
private Integer fid;
private String fname;
}
在jsp页⾯中,通过jstl展⽰学⽣列表和每个学⽣的盆友列表
解决
前提
// 前提:引⼊jstl标签
<%@taglib prefix="c" uri=""%>
写法⼀
后端代码
①获取所有的学⽣集合StudentList,只要学⽣的id和name即可。
②获取所有的盆友集合FriendList,只要盆友的id和name即可。
③将以上的2个集合设置到session中。
前端代码
// 前提:引⼊jstl标签
<c:forEach items="${StudentList}" var="student">
<span>学⽣ <span >${student.name }</span> 的盆友:</span>
jstl条件标签<br />
<c:forEach items="${FriendList}" var="friend">
<c:if test="${student.id == duleId}">
    
<span><span >${friend.name }</span></span>
<br />
</c:if>
</c:forEach>
<hr/>
</c:forEach>
效果如下:
写法⼆
后端代码
①获取所有的学⽣集合StudentList,并且设置好每个学⽣的friendList属性。
③将以上的StudentList集合设置到session中。
前端代码
<c:forEach items="${StudentList}" var="student" varStatus="student_vs">  <tr>
<td>${student.name}</td>
<br>
<c:set value="${student.friendList}" var="friend_data"/>
<c:forEach items="#{friend_data}" var="friend">
<td>${friend.name}</td>  
</c:forEach>
<td>${student.id}</td>
<td>${student_vs.index+1}</td>
</tr>
<hr />
</c:forEach>
写法三
后端代码
①获取所有的学⽣集合StudentList,并且设置好每个学⽣的friendList属性。
③将以上的StudentList集合设置到session中。
前端代码
<c:forEach items="${StudentList}" var="student" varStatus="student_vs">  <tr>
<td>${student.name}</td>
<br>
<c:forEach items="#{student.friendList}" var="friend">
<td>${friend.name}</td>  
</c:forEach>
</tr>
<hr />
</c:forEach>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。