往往我们都会将查询到的数据显示到界面中,那么该如何在界面显示,请看下面的详解:
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>