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

回到顶部