2016-07-15 7 views
0

私はタグフォームを持つベロシティテンプレートを持っています。速度テンプレートからスプリングコントローラにデータをバインドするにはどうすればいいですか?

<div class="row"> 
<div class="container"> 
    <div class="col-lg-12"> 
     <table class=" table table-striped"> 
      <thead> 
      <th>#</th> 
      <th>username</th> 
      <th>role</th> 
      <th>password</th> 
      </thead> 
      <tbody> 
       #foreach($user in $users) 
       <tr> 
        <td>$user.id</td> 
        <td>$user.username</td> 
        <td>$user.role</td> 
        <td>$user.password</td> 
        <td><a href="/user/delete/$user.id">Delete</a></td> 
        <td><a href="/user/edit/$user.id">Edit</a></td></tr> 
       #end 
      </tbody> 
     </table> 
     <form method="post" action="/user"> 
      <div class="form-group"> 
       <label for="username">Username:</label> 
       <input type="username" class="form-control" id="username"> 
      </div> 
      <div class="form-group"> 
       <label for="pwd">Password:</label> 
       <input type="password" class="form-control" id="pwd"> 
      </div> 
      <div class="form-group"> 
       <label for="role">Role:</label> 
       <input type="role" class="form-control" id="role"> 
      </div> 
      <button type="submit" class="btn btn-default">Add</button> 
     </form> 
    </div> 
</div> 

入力したデータをコントローラに渡す必要があります。ここにコントローラコードがあります。

@RequestMapping(value = "/user", method = RequestMethod.POST) 
public String addUser(@ModelAttribute User newUser) { 
    userService.save(newUser); 
    return "redirect:/users"; 
} 

私は速度の初心者ですが、私はこのフレームワークでまだ理解していません。私は長い間googleをしましたが失敗しました。ベロシティ・グルを助けてください!

答えて

1

私がここに見る問題は速度や春だけではありません。フォームの入力に名前がない場合は、フォームのタイプの名前が間違っているようです。それはコントローラに送られる入力名です。あなたがしたいのは、Userモデルを作成し、それがフォーム入力名と同じ変数名を持っていることを確認することです。

public class User { 
    private String username; 
    private String password; 
    private String role; 

    // Add getter and setter methods 

    // Add toString method 
} 

そして、あなたのフォームはあなたのコントローラのメソッドは、そのようなユーザーオブジェクトを取得する必要があります

<form method="post" action="/user"> 
      <div class="form-group"> 
       <label for="username">Username:</label> 
       <input type="text" class="form-control" id="username" name="username"> 
      </div> 
      <div class="form-group"> 
       <label for="pwd">Password:</label> 
       <input type="password" name="password" class="form-control" id="pwd"> 
      </div> 
      <div class="form-group"> 
       <label for="role">Role:</label> 
       <input type="text" class="form-control" id="role" name="role"> 
      </div> 
      <button type="submit" class="btn btn-default">Add</button> 
     </form> 

ようにする必要があります。私はちょうどテストするために簡単な春のブートアプリをやったと働いた。

+0

ありがとうございました!あなたは私の一日を作る) –

+0

喜んで助けてください。親切に受け入れて、答えをupvote :) – Olantobi

関連する問題