在 jsp页面中遍历list中的数据

时间:2021-05-19 19:39:02
        往往我们都会将查询到的数据显示到界面中,那么该如何在界面显示,请看下面的详解:
    0)前提得在jsp页面中获取后台传过来的数据(在此为List集合):            
       <%
List itemCategoryList=(List)request.getAttribute("itemCategoryList");
%>
    往往在前台显示的时候回使用三种方式,一个是使用for循环,另一个是使用循环迭代器iterator,最后还有一种是使用JSTL。下面分别来看如何进行操作:
    1)使用for循环方式:   
        <select name="category" class="select1" id="category">
<%
for (int i=0;i<itemCategoryList.size();i++){
ItemCategory ic=(ItemCategory)itemCategoryList.get(i);
String selectedString="";

if (item.getItemCategory().getId().equals(ic.getId())){
selectedString="selected";

}
%>
<option value="<%=ic.getId() %>" <%=selectedString %>><%=ic.getName() %></option>
<%
}
%>
</select>
</span>
   
    2)使用循环迭代器方式
        <select name="category" class="select1" id="category">
<%
for (Iterator iter= itemCategoryList.iterator();iter.hasNext();){
ItemCategory ic =(ItemCategory)iter.next();
String selectedString="";

if (item.getItemCategory().getId().equals(ic.getId())){
selectedString="selected";

}
%>
<option value="<%=ic.getId() %>" <%=selectedString %>><%=ic.getName() %></option>
<%
}
%>
</select>
   
    3)使用JSTL循环表达式方式(此方式不需要前提0,通过EL表达式
${itemCategoryList}可以直接取出request中的属性值):  
        <select name="category" class="select1" id="category">
<c:choose>
<c:when test="${empty itemCategoryList}">
<tr>
<td colspan="3">没有符合条件的数据</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach items="${itemCategoryList}" var="itemCategoryList">
<tr>
<td>${itemCategoryList.name }</td>
</tr>
</c:forEach>
</c:otherwise>

</c:choose>

</select>