如何将速度模板中的数据绑定到弹簧控制器?

时间:2016-07-15 22:02:29

标签: java spring spring-mvc velocity

我有一个带标签形式的速度模板。

<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";
}

我是速度的新手,我还没有想出这个框架。我谷歌很长时间但不成功。请帮助速度大师!

1 个答案:

答案 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>

你的控制器方法应该获得这样的用户对象。我刚刚做了一个简单的弹簧启动应用程序来测试它的工作原理。