【发布时间】:2015-08-26 09:26:50
【问题描述】:
我需要用控制器在 jsp 中显示数据,我有 List 以及在 jsp 中打印的信息。
运行此代码时出现错误:
HTTP 状态 500 - 请求处理失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:失败 实例化 [entities.Pupil]:未找到默认构造函数;嵌套的 例外是 java.lang.NoSuchMethodException:entities.Pupil.()
控制器
@Controller
public class PupilController {
@RequestMapping(value = "/add", method = RequestMethod.POST)
public List add(@ModelAttribute Pupil pupil){
System.out.println(pupil.toString());
List<Pupil> pupilList = new ArrayList<Pupil>();
pupilList.add(new Pupil(1, "Name", "Last", 13));
pupilList.add(new Pupil(2, "Name", "Last", 55));
pupilList.add(new Pupil(3, "Name", "Last", 41));
return pupilList;
}
}
index.jsp
<body>
<h2>Hello World!</h2>
<a href="hello">click</a>
<form action="/add" method="post">
<p>1:</p><input type="text" name="one">
<p>2:</p><input type="text" name="two">
<p>3:</p><input type="text" name="three">
<p>4:</p><input type="text" name="four">
<input type="submit" value="button">
</form>
</body>
add.jsp
<body>
<h3>This is add.jsp</h3>
<table>
<thead>
<tr>
<td>ID</td>
<td>NAME</td>
<td>LAST</td>
<td>YEAR</td>
</tr>
</thead>
<tbody>
<c:forEach items="${pupilList}" var="tester">
<tr>
<td>${tester.id}</td>
<td>${tester.name}</td>
<td>${tester.last}</td>
<td>${tester.year}</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
【问题讨论】:
-
在
Pupil类中创建一个默认构造函数。 -
哦,我在
Pupil类中创建了默认构造函数,但是在 jsp 页面中不显示来自pupilList的数据,只显示thead块 -
将控制器方法的返回类型从
List更改为List<Pupil> -
已更改,但没有帮助
-
你的jsp中是否包含
<c:forEach>的标签库?标签库<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
标签: java jsp spring-mvc