2017-02-05 11 views
-3

私は、ユーザーからのデータを処理し、Employeeクラスのインスタンスを作成するページを作成したいと考えています。私は、インターネット上のチュートリアルた内容に応じて、フォームを作成したが、私はアプリケーションを実行すると、私はエラーが下記の投稿を取得:Spring MVCのフォーム

@Controller 
@RequestMapping(value = {"/employee"}) 
public class EmployeeController { 

@RequestMapping(value = {"/employeeForm"}, method = RequestMethod.GET) 
public String employeePage() { 
    System.out.println("EmployeeController"); 
    return "/employee/add"; 
} 

@RequestMapping(value = "/add", method = RequestMethod.POST) 
public String addEmployee(@ModelAttribute("ProjectSpring") Employee employee, 
     ModelMap model) { 
    model.addAttribute("name", employee.getFirstName()); 
    model.addAttribute("age", employee.getLastName()); 

    return "index"; 
} 
} 

<html> 
<head> 
    <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    <h1>Employee add</h1> 
<form:form method="POST" action="/employee/add"> 
    <table> 
<tr> 
    <td><form:label path="name">Name</form:label></td> 
    <td><form:input path="name" /></td> 
</tr> 
<tr> 
    <td><form:label path="age">Age</form:label></td> 
    <td><form:input path="age" /></td> 
</tr> 
<tr> 
    <td><form:label path="id">id</form:label></td> 
    <td><form:input path="id" /></td> 
</tr> 
<tr> 
    <td colspan="2"> 
     <input type="submit" value="Submit"/> 
     </td></tr></table> 
    </form:form> 
</body></html> 

EmployeeController:フォームの

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute 

コードは以下の通りです誰も私に教えてください、このエラーの原因は何ですか?

+0

あなたは私たちにこのフォームからPOSTを処理しているあなたのコントローラを表示する必要があります。 – Jason

+0

モデル属性「ProjectSpring」はどこに定義されていますか? – Jason

答えて

1

まず、フォームタグに「コマンド名」属性を追加し、その値は以下のように属性としてModelMap添加するビーン名:

<form:form method="POST" commandName="ProjectSpring" action="/employee/add"> 

そのようコントローラにModelMapにBeanインスタンスを追加してくださいjspで利用できます。すなわち: -

@RequestMapping(value = {"/employeeForm"}, method = RequestMethod.GET) 
public String employeePage(ModelMap model) { 
    model.addAttribute("ProjectSpring", new Employee()); 
    System.out.println("EmployeeController"); 
    return "index"; 
} 

は今、あなたのコードが動作します...楽しむ...

関連する問題