這裏平原目標對象是form.jspjava.lang.IllegalStateException:既不BindingResult也不對豆名 '傳遞addStudent' 可作爲請求屬性
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Add Student</title>
</head>
<body>
<form:form action="addStudent" commandName="addStudent" method="post">
<table>
<tr>
<td><form:label path="name">Name:</form:label></td> <td><form:input path="name"/></td>
</tr>
<tr>
<td><form:label path="email">Email:</form:label></td> <td><form:input path="email"/></td>
</tr>
<tr>
<td><form:label path="age">Age:</form:label></td> <td><form:input path="age"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Submit"></td>
</tr>
</table>
</form:form>
</body>
</html>
這裏是控制器方法
@RequestMapping(value="/addStudent", method=RequestMethod.POST)
public String addStudent(@ModelAttribute("addStudent") Student student) {
System.out.println("Saving Info...");
System.out.println("Name: "+student.getName());
System.out.println("Email: "+student.getEmail());
System.out.println("Age: "+student.getAge());
return "form";
}
這裏被學生模型
public class Student {
private String name;
private String email;
private int age;
private int id;
public Student() {
super();
}
}
我想不需要web.xml或dispatcher-servlet.xml。每件事都是正確綁定的,我的意思是commandName在jsp中是正確的。 ModelAttribute在控制器中是正確的,那麼爲什麼contol沒有到達控制器? 。:(
請幫我已經浪費半天就這個 PS:我是新來的春天和計算器
編輯:
建議後,我的代碼看起來像此:
控制器的方法:
public String addStudent(@ModelAttribute("student") Student student, BindingResult result) {
JSP形式:
<form:form action="addStudent" commandName="student" method="post">
編輯:
解決它自己 只要命令名和字符串的ModelAttribute是很好相同添加了這個方法modelattibute
@ModelAttribute("student")
public Student getForm() {
return new Student();
}
仍然沒有工作......你提到的不管是不是我想的一個問題 – user3894965 2014-10-10 08:40:25