2012-11-29 45 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" />