我正在尝试迭代列表并尝试将值打印为:
<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
对象的所有属性。
答案 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" />