下面的register.jsp是我的用户注册页面,想要使用hibernate将用户详细信息存储到db,但是当register.jsp文件运行时,它会一直显示异常。我已将表单操作映射到控制器中。
register.jsp文件是: 在此文件中,用户详细信息和我给出了在EmployeeController中映射的操作“reg”。
Register.jsp
<form:form method="POST" action="reg.html">
<table border="0">
<tr>
<td colspan="2" align="center"><h2>Spring MVC Form Demo - Registration</h2></td>
</tr>
<tr>
<td>User Name:</td>
<td><form:input path="username" /></td>
</tr>
<tr>
<td>Password:</td>
<td><form:password path="password" /></td>
</tr>
<tr>
<td>E-mail:</td>
<td><form:input path="email" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Register" /></td>
</tr>
</table>
</form:form>
EmployeeController.java
@Controller
public class EmployeeController {
@Autowired
private UserService userService;
@RequestMapping(value = "/reg", method = RequestMethod.POST)
public ModelAndView saveUser(@ModelAttribute("command") UserBean userBean,
BindingResult result) {
User user = prepareModelUser(userBean);
userService.addUser(user);
return new ModelAndView("RegistrationSuccess.html");
}
}
来自register.jsp我试图调用EmployeeController.java中的saveUser方法但是每当我运行register.jsp时我都会收到异常
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute.
我尝试使用commandName和action在表单和我基于它映射的控制器中。尽管如此,它给出了如上所述的相同例外。所以我想如何配置控制器提交这个register.jsp表单。是我需要添加配置控制器显式或什么..并在EmployeeController.java我有一个另一个窗体控制器与相同的默认“命令”表单提交。工作正常。但在这里我有搜索的可能性。但不起作用。
答案 0 :(得分:0)
您在表单标记中缺少commandName,并且您在服务器端方法中出错了,请执行以下操作
表格
<form:form method="POST" action="reg.html" commandName="userBean" modelAttribute="userBean" >
在服务器端就像
一样public ModelAndView saveUser(@ModelAttribute("userBean") UserBean userBean