2017-09-14 8 views
-1

私は、Spring MVCを使用して更新フォームを作成しようとしています。ユーザーが更新ボタンをクリックすると、現在の値が入力タグに表示されます。現在の値を編集して送信ボタンを押すと、次のエラーが表示されます。更新フォームエラー - Spring4 mvc-org.springframework.beans.TypeMismatchException:

org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleTypeMismatch WARNING:要求要素のバインドに失敗しました:org.springframework.beans.TypeMismatchException:型の値を変換するのに失敗しました 'はjava.lang.String型'必要な型 'int'に変更します。ネストされた例外はjava.lang.NumberFormatExceptionです:入力文字列の場合: "updateStudent"

home.jspを

<form:form method="GET" action="updateStudent" commandName="selectedUser"> 
     <table> 

      <tr> 
       <form:input path="userID" placeholder="userID" 
        value="${selectedUsers.userID}" /> 
       <form:input path="userName" placeholder="userName" 
        value="${selectedUsers.userName}" /> 
       <form:input path="password" placeholder="password" 
        value="${selectedUsers.password}" /> 
      </tr> 
      <tr> 
       <td colspan="2"><input type="submit" value="Submit" /></td> 
      </tr> 
     </table> 
    </form:form> 

controller.java

@RequestMapping(value = "updateStudent", method = RequestMethod.GET) 

public String updateStudent(@ModelAttribute("selectedUser") User user, 
     ModelMap model) throws Exception { 

    Student student = new Student(); 
    System.out.println("come here helloController()"); 
    model.addAttribute("userID", user.getUserID()); 
    model.addAttribute("userName", user.getUserName()); 
    model.addAttribute("password", user.getPassword()); 
    model.addAttribute("student",student); 
    model.addAttribute("user",user); 
    System.out.println("student id is " + user.getUserID()); 
    // model.addAttribute("userI", user); 
    if (user.getUserID() == 0) { 
     model.addAttribute("error", "please enter id"); 
     return "home"; 
    } 
    if (user.getUserName() == null) { 
     model.addAttribute("error", "please enter getUserName"); 
     return "home"; 
    } 
    if (user.getPassword() == null) { 
     model.addAttribute("error", "please enter getPassword"); 
     return "home"; 
    } 
    return "home"; 
} 

User.java

public class User { 
    int userID; 
    String userName; 
    String password; 

    public int getUserID() { 
     return userID; 
    } 

    public void setUserID(int userID) { 
     this.userID = userID; 
    } 

    public String getUserName() { 
     return userName; 
    } 

    public void setUserName(String userName) { 
     this.userName = userName; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 
} 

更新された値をコントローラに渡す必要があります。あなたは質問があることを願っています。問題を理解するのを助けてください。

答えて

0

モデルクラスUserには、プリミティブタイプのデータint idがあります。それをIntergerオブジェクトに変更します。

Integer userID; 

とゲッターおよびセッター。すべてがうまくいくと思う。

+0

動作しませんでした。 – dmaprasad

+0

あなたのプロジェクトをきれいにしてビルドして再実行してください。例外が原因です。 –

+0

どちらも動作しませんでした – dmaprasad

関連する問題