我有一个带标签形式的速度模板。
<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";
}
我是速度的新手,我还没有想出这个框架。我谷歌很长时间但不成功。请帮助速度大师!
答案 0 :(得分: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>
你的控制器方法应该获得这样的用户对象。我刚刚做了一个简单的弹簧启动应用程序来测试它的工作原理。