我是JSP和servlet的新手。
我正在尝试从servlet获取列表,并希望将这些数据显示在JSP页面中。
这就是我做的事情
我的Servlet课程
List<User> list = friendsDao.getFirendsList(user.getEmail());
System.out.println("List Size:"+list.size());
req.setAttribute("list", list);
getServletContext().getRequestDispatcher("/home.jsp").forward(req, resp);
我的JSP页面
我添加了此标记库
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
以下是我正在做的迭代数据
<table>
<c:forEach var="friend" items="${list}">
<tr>
<td><c:out value="${friend}" /></td>
<td><c:out value="${friend.email}" /></td>
</tr>
</c:forEach>
</table>
但这不起作用
但是当我想要这样的东西时
<%
}
List<User> list = (List<User>) request.getAttribute("list");
%>
<table>
<c:forEach var="friend" items="<%=list%>">
<tr>
<td><c:out value="${friend.name}" /></td>
<td><c:out value="${friend.email}" /></td>
</tr>
</c:forEach>
</table>
这也不起作用,但它在列表中迭代循环到数据的大小。 但在浏览器中打印
$ {friend.name} $ {friend.eamil}
我怎样才能拥有实际值。 请帮帮我。
谢谢, Nixit
答案 0 :(得分:1)
更改
<c:forEach var="friend" items="<%=list%>">
到
<c:forEach var="friend" items="${list}">
因为<%=list%>
正在输出值,并且您不需要在List<User>
中引用jsp
答案 1 :(得分:0)
哦,我得到了解决方案,
我不知道原因,但是jsp文件要求我放一行代码。为了标记库工作
<%@ page isELIgnored="false" %>