我有两个对象 Employee
和 Department
Employee 包含 dept_id
。我想要做的是在 jsp 页面的表格中显示 Employee
的内容。但我不想显示 dept_id
,而是显示 Department
表中的 dept_name
。到目前为止,我的 Controller 方法为:
public ModelAndView viewEmployee(HttpServletRequest request,
HttpServletResponse response) throws Exception {
List<Employee> employeeList = employeeService.getAllEmployee();
List<Department> departmentList = new ArrayList<Department>();
for (Employee e : employeeList) {
departmentList.add(departmentService.getDepartment(e.getDept_id()));
}
Map<String, Object> model = new HashMap<String, Object>();
model.put("employee", employeeList);
model.put("department", departmentList);
return new ModelAndView("viewEmployee", "model", model);
}
viewEmployee.jsp
<table border="1px" bordercolor="black" width=80% align="center">
<tr>
<td>Name</td>
<td>Gender</td>
<td>Salary</td>
<td>Department</td>
<td>Action</td>
</tr>
<c:forEach items="${model.employeeList}" var="element">
<tr>
<td><c:out value="${element.name}" /></td>
<td><c:out value="${element.gender}" /></td>
<td><c:out value="${element.salary}" /></td>
<td>display Department Name here </td>
<td><a
href="<c:url value="editEmployee.htm">
<c:param name="emp_id" value="${element.id}"/>
</c:url>
">Edit</a>
<a
href="<c:url value="deleteEmployee.htm">
<c:param name="emp_id" value="${element.id}"/>
</c:url>
">Delete</a>
</td>
</tr>
</c:forEach>
</table>
有什么帮助吗?我无法将 map 内容显示到 jsp 页面。
最佳答案
应该是<c:forEach items="${model.employee}" var="element">
此外 department 应该是 Employee 的属性,这样你就可以使用 ${employee.department.name}
关于java - Spring MVC 将多个列表从 Controller 传递到 jsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13795809/