Jstl遍历List

时间:2012-11-29 05:06:36

标签: java jsp 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>

但是,只打印列表的大小而不是jstl中定义的name。有帮助吗?我想打印employee对象的所有属性。

1 个答案:

答案 0 :(得分: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>

一些背景

在scriptlet中声明变量不会自动使其可用于JSTL运行时。事实上,JSTL适用于容器在运行时注入每个JSP的pageContext。因此,如果您确实需要在scriptlet中声明变量并希望将其提供给JSTL,则必须明确地执行此操作:

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

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