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

How to bind data from velocity template to spring controller?

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

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

我是 velocity 的新手,我还没有弄清楚这个框架。我已经 google 很长时间了,但没有成功。请速度大师帮忙!

我在这里看到的问题不仅仅是速度或 Spring。您的表单输入没有名称,看来您在表单中输入的名称放错了地方。这是发送到控制器的输入名称。您要做的是创建一个用户模型并确保它具有与表单输入名称相同的变量名称。

 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>

您的控制器方法应该像那样获取用户对象。我只是做了一个简单的 spring 启动应用程序来测试并且它有效。