c:forEach无法显示控制器类返回的列表

时间:2016-06-16 06:15:41

标签: jsp spring-mvc

输出:
output Image
当我运行以下代码时,我得到此输出。我猜问题出在c:forEach上。有谁能帮助我,我做错了什么?

控制器类中的

方法:

@RequestMapping("/viewemp")    
public ModelAndView viewemp() {  
    List<Emp> listOfEmps=dao.getEmployees();
    /*for(int i = 0; i < listOfEmps.size(); i++) {
        System.out.println(listOfEmps.get(i).getEmpno());
    }*/
    return new ModelAndView("viewemp","list",listOfEmps);  
}

Jsp Page:

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>    
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>    

<h1>Employees List</h1>  
<table border="2" width="70%" cellpadding="2">  
<tr><th>Id</th><th>Name</th><th>Salary</th><th>Designation</th><th>Edit</th><th>Delete</th></tr>  
   <c:forEach var="emp" items="${list}">   
   <tr>  
   <td>${emp.empno}</td>  
   <td>${emp.ename}</td>  
   <td>${emp.sal}</td>  
   <td>${emp.job}</td>  
   <td><a href="editemp/${emp.empno}">Edit</a></td>  
   <td><a href="deleteemp/${emp.empno}">Delete</a></td>  
   </tr>  
   </c:forEach>  
   </table>

4 个答案:

答案 0 :(得分:1)

问题似乎与jstl有关。

  1. 您是否已将jstl包含在您的lib中?!
  2. 在你的jsp中你有以下声明

    <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false"%>

答案 1 :(得分:0)

你需要使用你在控制器中使用的相同变量来获取从控制器到jsp页面的值,在本例中是viewemp,所以尝试使用该变量,它可能会起作用

答案 2 :(得分:0)

检查模型类中使用的实例变量是否与在jsp forEach循环中使用的实例变量相同。与emp.empno一样,检查模型类中是否存在empno。

答案 3 :(得分:0)

问题可能归因于JSTL库。如果使用maven,请通过以下链接添加对JSTL的依赖关系。

https://mvnrepository.com/artifact/jstl/jstl/1.2