是这样的 , 我我在servlet中向前端页面传递了一个数组(数组的元素是UserBean),希望在页面能循环的把每一个User信息显示出来,可在 JSP的<c:forEach中 无法显示。 请看我的代码:
Java代码:
首先是UserBean的类
package com.demo.data;
public class UserBean {
private String name;
private String pwd;
public UserBean(){
}
public void setName(String n) {
this.name = n;
}
public String getName() {
return this.name;
}
public void setPwd(String p) {
this.pwd = p;
}
public String getPwd() {
return this.pwd;
}
}
然后是发送给前端页面的代码:
ArrayList<UserBean> list = new ArrayList<UserBean>();
while (rs.next()) {
UserBean user = new UserBean();
user.setName(rs.getString(2)); // 名字
user.setPwd(rs.getString(3)); // 密码
list.add(user); //把每一个user加入列表
}
RequestDispatcher rd = req.getRequestDispatcher("/WebRoot/main.jsp");
req.setAttribute("users",list);//存值
rd.forward(req, resp);
好了 在看页面JSP代码
<jsp:useBean id="users" class="com.demo.data.UserBean" ></jsp:useBean>
<c:forEach items="${users}" var="entity" >
<tr>
<td>${entity.name}</td>
<td>${entity.pwd}</td>
</tr>
</c:forEach>
问题就在这,页面不报错,却无法显示任何内容。
我在页面中这样写 <%=request.getAttribute("users")%> , 运行时能显示内容 [com.demo.data.UserBean@161b2fb, com.demo.data.UserBean@12da053, com.demo.data.UserBean@78b1f4, com.demo.data.UserBean@1eb305e]
数据库中刚好是4条记录,说明能取到, 就是不能在<c:forEach 中显示 , 大家帮帮我吧,搞了一晚上了 郁闷啊
------解决思路----------------------
<c:forEach items="${users.objectList}" var="entity" >
你试试这个
------解决思路----------------------
这个这边肯定不应该这么写的,底面c:foreach的标签没有问题,如果还是不行,你可以直接用
<%request.getAttribute(),然后循环%>
------解决思路----------------------
RequestDispatcher rd = req.getRequestDispatcher("/WebRoot/main.jsp");
这句后面加上.forward(request,response)试试
req.getRequestDispatcher("/WebRoot/main.jsp").forward(request,response);
------解决思路----------------------
有加,看错了,请无视
------解决思路----------------------
没赋值呗,rs 是啥 rs.getString(2/3) 有值吗
------解决思路----------------------
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
jsp中加这个没有
------解决思路----------------------
没加C标签,jsp:userbean冲突