2017-11-24 26 views
0

Spring MVCとJSPページのサンプル登録ページを作成しようとしています。JSPページのリクエスト属性としてモデル属性を使用できません

のTomcatサーバー上のURLを開いて、私は次のようなエラーに

root cause 
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'register' available as request attribute 
org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144) 
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168) 
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(

を取得しています私は、JSP register.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Registration</title> 
    </head> 
    <body> 
    <form:form action="/register/process" method="POST" modelAttribute="register"> 
     <table style="text-align: center;"> 

      <tr> 
       <td><form:label path="fname">First Name</form:label></td> 
       <td><form:input path="fname" name="fname" 
         id="fname" /></td> 
      </tr> 
      <tr> 
       <td><form:label path="lname">Last Name</form:label></td> 
       <td><form:input path="lname" name="lname" id="lname" /> 
       </td> 
      </tr> 
      <tr> 
       <td></td> 
       <td> 
       <input type="submit" value="CREATE AN ACCOUNT"/> 
       </td> 
      </tr> 
     </table> 
    </form:form> 
    </body> 
    </html> 

がありますが、私は、コントローラクラスUserController.javaを持っています

package vnfhub.supplier.controller; 

@Controller 
public class UserController { 
    @RequestMapping(value = "/register", method = RequestMethod.GET) 
    public String getRegisterForm(Model model) { 
     model.addAttribute("register", new Register()); 
     return "register"; 
    } 

    @RequestMapping(value = "/register/process", method = RequestMethod.POST) 
    public String processRegistration(@ModelAttribute("register") Register register, BindingResult result) { 
     return "success"; 
    } 
} 

success.jspページ

<%@ page language="java" contentType="text/html; charset=UTF-8" 
pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Success Form</title> 
</head> 
<body> 
<font color="green"><h1>Hello</h1></font> 

<h1>You have successfully registered</h1> 
<font color="green"><h1>Welcome to Spring world !</h1></font> 
</body> 
</html> 

私はstackoverflowの上の多くの解決策を試してみました....しかし、それらのどれも働きました。

+0

この例外が発生するハンドラメソッドは次のとおりです。 ** GET **または** POST **では? –

+0

GET ..... http:// localhost:8075/sample/register – Tushar

+0

あなたのコードで例外を再生成しようとしました。しかし、これは私にとって大丈夫です。クリーンビルドしてプロジェクトを再開しようと思いますか? –

答えて

0

あなたのコードはここまでで大丈夫です。私はあなたのコードで状況を模倣するが、不幸にも見つかりました例外なし

enter image description here

あなたは間違っているかもしれません物事はあなたがあなたのtomcatでいくつかの古いビルドのコードを実行されています。 クリーンビルドあなたのコンテナにを再配置してみてください。

NB: 1つの親切な提案。 /register/processへのフォームのアクションを持っている間違ったものをで実行しています。リクエストをコンテナルートに送信します(例:localhost:8080/register/process)。そしてあなたはそれのために404を得るでしょう。あなたはおそらくそれを望んでいません。 register/processがあなたのURLでなければなりません。これはあなたのアプリケーションコンテキストに関連してリクエストをPOSTします。アプリケーションのコンテキストがlocalhost:8080/testの場合、localhost:8080/test/register/process

+0

ありがとう.....プロジェクトとURLの問題を解決する.... ヘルプが高く評価されています... :) – Tushar

+0

upvote; –

関連する問題