java - 如何将速度模板中的数据绑定(bind)到 Spring Controller ?

标签 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>

我需要将输入的数据传递给 Controller ​​。这是 Controller 代码。

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

我是速度方面的新手,我还没有弄清楚这个框架。我用谷歌搜索了很长时间但没有成功。请速度大师帮忙!

最佳答案

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

 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>

你的 Controller 方法应该像这样获取用户对象。我刚刚做了一个简单的 Spring Boot 应用程序来测试,它工作了。

关于java - 如何将速度模板中的数据绑定(bind)到 Spring Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38405589/

相关文章:

java - Openshift 重定向服务到 https 丢失用户 IP 地址

java - 在将 Json 对象转换为 POJO 之前验证它 - 使用 @requestBody

java - Spring Security 路路通密码

java - 如何在 Spring 中的 REST 服务的 HandlerInterceptor 中填充 ModelAndView

java - 如何基于两点旋转图像

java - Spring Batch 如何以 Reader 身份读取多个表(查询)并将其写入平面文件写入

java - 安卓数组排序

java - 如何最好地在 Spring Integration 中实现 DynamicPoller

ajax - Spring - 在 Ajax 请求失败后成功登录后重定向到链接

java - Spring禁用上下文:component-scan does not detect controllers