jsp中使用c:forEach遍历List
想用java写一个简单的用户管理系统,在前端某页面展示所有用户的信息。
后端用request.serAttribute传输List,前端使用c:foreach接收,失败。
后端代码:
①User类的一些get方法:
public String getUname() { return uname;
}
public String getUpassword() {
return upassword;
}
public String getGender() {
return gender;
}
负责的控制器:
@RequestMapping(value="/allUsers",method=RequestMethod.GET)public String showAllUsers(HttpServletRequest request,HttpServletResponse response){
List<User> u = userList.findAll();
//System.out.println(u.get(1).getUname());
//System.out.println(u.get(1).getUpassword());
request.setAttribute("allUsers",u);
return "manager/allUsers";
}
//被注释掉的两行能成功在控制台输出相应的信息,说明List u是正常的
前端代码:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<body>
<c:forEach items="${allUsers}" var="user">
<div>
用户名:<c:out value="${user.getUname()}" ></c:out><br>
密 码:<c:out value="${user.getGender()}" ></c:out><br><br>
</div>
</c:forEach>
</body>
</html>
Run以后发现无法正确显示信息,而是这样了...
郁闷了好久不知道错在哪里,希望得到指点,感谢。
回答:
原来是没有加<%@ page isELIgnored="false" %>,默认是true所以不能使用el表达式!
回答:
user.属性名,不加get,去掉c:out标签,直接${user.xxxxx}试试
回答:
<c:forEach items="${allUsers}" var="user">
<div> 用户名:${user.uname}<br>
密 码:${user.gender}<br><br>
</div>
</c:forEach>
这样应该就可以了,EL表达式中 对象名.属性名 等价于java中调用get方法
回答:
<c:forEach items="${allUsers}" var="user">
<div> 用户名:<c:out value="${user.uname}" ></c:out><br>
密 码:<c:out value="${user.gender}" ></c:out><br><br>
</div>
</c:forEach>
以上是 jsp中使用c:forEach遍历List 的全部内容, 来源链接: utcz.com/p/179452.html