2014-10-10 59 views
0

這裏平原目標對象是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(); 
    } 

回答

0

同樣我是一個新手到春天和東西.. 但我猜它找不到正確的請求映射,因爲你有/ addStudent在請求映射和只是addStudent形式的行動。如果表單處於上下文根中,那很好。 你可以試試看嗎?

也請在ARG列表中添加BindingResult對象 公共字符串傳遞addStudent(@ModelAttribute(「傳遞addStudent」)學生的學生,BindingResult結果)

+0

仍然沒有工作......你提到的不管是不是我想的一個問題 – user3894965 2014-10-10 08:40:25