表单不会将参数发送到正确的方法

时间:2016-05-23 17:35:15

标签: spring-mvc thymeleaf

我在`Thymleaf中有以下注册表格,问题是当我提交按钮时它只是将我重定向到登录页面。

这是我的表格:

<form class="form-horizontal" th:object="${newCustomer}" th:method="post" th:action="@{/dashboard/NewUserRegisteration}">
                <div class="form-group">
                    <label for="name" class="col-sm-2 control-label">Full Name</label>
                    <div class="col-sm-10">
                        <input type="text" class="form-control" id="name" th:field="*{name}"></input>
                    </div>
                </div>

                <div class="form-group">
                    <label for="name" class="col-sm-2 control-label">address</label>
                    <div class="col-sm-10">
                        <input type="text" class="form-control" id="address" th:field="*{address}"></input>
                    </div>
                </div>  

                <div class="form-group">
                    <label for="name" class="col-sm-2 control-label">Phone</label>
                    <div class="col-sm-10">
                        <input type="text" class="form-control" id="phone" th:field="*{phone}"></input>
                    </div>
                </div>

                <div class="form-group">
                    <label for="name" class="col-sm-2 control-label">Password</label>
                    <div class="col-sm-10">
                        <input type="password" class="form-control" id="password" th:field="*{password}"></input>
                    </div>
                </div>



                <div class="form-group">
                    <label for="name" class="col-sm-2 control-label">Confirm Password</label>
                    <div class="col-sm-10">
                        <input type="password" class="form-control" id="confirmPass" th:field="*{confirmPass}"></input>
                    </div>
                </div>              


                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <button id="submit-button" type="submit" class="btn btn-default">Submit query</button>
                    </div>
                </div>
            </form>

这是控制器方法:

@RequestMapping(method=POST, path="dashboard/NewUserRegisteration")  
    public String RegisterNewCustomer( @RequestParam(name = "name") UserDTO userDTO ){

         System.out.println("All Users are: ");

        return "redirect:"+ "/dashboard/login";
    }

正如您所看到的,我希望在按下按钮时看到"All Users are: ",但它不起作用。 最后这里是UserDTO类:

@Data
@NoArgsConstructor(force = true)
public class UserDTO {

    long id;
    String name;
    String address;
    String phone;
    String password;
    String userName;
    String confirmPass;
}

1 个答案:

答案 0 :(得分:0)

第一,你是否认为你指定了这个,重定向到登录页面?:

return "redirect:"+ "/dashboard/login";

如果那不是您的意图,那么在您的代码中,您已经指定了执行控制器方法后要遵循的路径。

在方法中,您可能会考虑将其分解为

`

@Autowired
UserRepository userRepository;
@RequestMapping(method = RequestMethod.POST, path="dashboard/NewUserRegisteration") 
public String RegisterNewCustomer(Model model){
    UserDTO user = new UserDTO();
    model.addAttribute("newCustomer",user);
    userRepository.save(user);
    return "redirect:/dashboard/login";
}

`