2012-11-29 72 views
2

我試圖遍歷一個列表,並試圖打印的價值:作爲內JSTL定義jstl的遍歷一個列表

<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> 

但是,只有列表的大小打印不name。任何幫助?我想打印employee對象的所有屬性。

回答

3

爲什麼你使用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> 

一些背景

剛剛宣佈在小腳本變量不會自動將其提供給JSTL運行。事實上,JSTL在運行時通過容器注入到每個JSP中的pageContext。因此,如果您確實需要在scriptlet中聲明一個變量並希望將其提供給JSTL,則必須明確執行此操作:

<% 
List<String> stuff = new ArrayList<String>(); 
request.setAttribute("mystuff", stuff); 
%> 

<c:out value="${mystuff" />