2014-10-10 56 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