2012-04-07 14 views
1

私はSpring MVC 3を使用してフォームを設定して処理していますが、Spring MVC 3を使用してフォームを送信する際に、私はそれの背後にある理由を理解することができません。Spring MVC 3:HTTPステータス405 - リクエストメソッド 'POST'はサポートされていません

フォームを送信するとHTTPステータス405 - リクエストメソッド 'POST'がサポートされていませんエラー。 以下は、動作させるために使用している.jspフォームとコントローラです。

newProblem.jsp

<form:form commandName="problem" > 
     <form:label path="problem" > 
      <span class="label">Problem <form:errors path="problem" /></span> 
     </form:label> 
     <form:textarea path="problem" cssClass="editor" id="editor"/> 


     <input type="submit" value="create" /> 
</form:form> 

ProblemManagementController.java

//Add new problem (GET) 
@RequestMapping(method=RequestMethod.GET, value="/admin/problems/new") 
public String setUpForm(Model model) { 
    model.addAttribute("problem", new Problem()); 
    return "newProblem"; 
} 

//Add new problem (POST) 
@RequestMapping(method=RequestMethod.POST, value="/admin/problems/new") 
public String processForm(@Valid Problem problem, Errors result) { 
    if(result.hasErrors()) { 
     return "newProblem"; 
    } 
    problemManagementService.createProblem(problem); 
    return "redirect:/admin/problems"; 
} 

//Display all problems 
@RequestMapping(value="/admin/problems") 
public String displayAllProblems(Model model) { 
    List<Problem> allProblems = problemManagementService.getAllProblems(); 

    model.addAttribute("allProblems", allProblems); 
    return "allProblems"; 
} 

誰かが、私はこのエラーを取得していますなぜ私が理解するのに役立つだろうか?

+0

はこれを試してみてください。サーバーとプロジェクトをクリーンアップした後、サーバーにプロジェクトを再デプロイすると、サーバーが正常に機能します。 – skip

答えて

0

あなたは<form:form>タグでアクションを追加するのを忘れてしまいます。 EclipseのIDEは `processForm`と` displayAllProblems`方法を読んでいなかったいくつかの理由から

<form:form action="admin/problems/new" commandName="problem" > 
     <form:label path="problem" > 
      <span class="label">Problem <form:errors path="problem" /></span> 
     </form:label> 
     <form:textarea path="problem" cssClass="editor" id="editor"/> 


     <input type="submit" value="create" /> 
</form:form> 
関連する問題