[英]Jstl iterate over a List
我正在嘗試遍歷列表並嘗試將值打印為:
<jsp:useBean class="com.lftechnology.db.EmployeeDaoImpl" id="empImpl"></jsp:useBean>
<jsp:useBean class="com.lftechnology.employee.Employee" id="employee"></jsp:useBean>
<%
List<com.lftechnology.employee.Employee> empList = null;
empList = empImpl.getAllEmployee();
out.println(empList.size());
%>
<c:forEach items="${empList}" var="element">
<tr>
<td>${element.name}</td>
<td><c:out value="${element.name}" /></td>
</tr>
</c:forEach>
但是,只打印列表的大小,而不是在 jstl 中定義的name
。 有什么幫助嗎? 我想打印employee
對象的所有屬性。
為什么要使用scriptlet? 這樣的事情應該可以工作(我無法測試):
<jsp:useBean class="com.lftechnology.db.EmployeeDaoImpl" id="empImpl"></jsp:useBean>
<c:forEach items="${empImpl.allEmployee}" var="element">
<tr>
<td>${element.name}</td>
<td><c:out value="${element.name}" /></td>
</tr>
</c:forEach>
一些背景
僅在 scriptlet 中聲明變量不會自動使其可用於 JSTL 運行時。 事實上,JSTL 是在運行時由容器注入到每個 JSP 中的pageContext
上工作的。 因此,如果您確實需要在 scriptlet 中聲明一個變量並想讓它對 JSTL 可用,則必須明確地執行以下操作:
<%
List<String> stuff = new ArrayList<String>();
request.setAttribute("mystuff", stuff);
%>
<c:out value="${mystuff" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.