2

我正在尝试遍历列表并尝试将值打印为:

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

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

4

1 回答 1

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 是pageContext在运行时由容器注入到每个 JSP 中的。因此,如果您确实需要在 scriptlet 中声明一个变量并希望将其提供给 JSTL,您必须明确地执行此操作:

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

<c:out value="${mystuff" />
于 2012-11-29T05:14:27.200 回答