Java 为什么不是';用户提交注册表时是否执行t registerSubmit?春天

Java 为什么不是';用户提交注册表时是否执行t registerSubmit?春天,java,html,spring,security,Java,Html,Spring,Security,我不知道为什么在提交注册表单(register.html)时,registerSubmit函数没有运行,我猜想它与Spring安全性的工作方式有关。即使尝试使用返回视图的简单控制器方法,但根本没有执行该方法,我在单击submit时看到的只是同一个页面 RegisterController.java @RequestMapping(value = {"/register"}, method = RequestMethod.POST) public String registerSubmi

我不知道为什么在提交注册表单(register.html)时,registerSubmit函数没有运行,我猜想它与Spring安全性的工作方式有关。即使尝试使用返回视图的简单控制器方法,但根本没有执行该方法,我在单击submit时看到的只是同一个页面

RegisterController.java

 @RequestMapping(value = {"/register"}, method = RequestMethod.POST)
    public String registerSubmit(@Valid  User user, BindingResult bindingResult){
        if (bindingResult.hasErrors()){
            return "register";
        }
       User userFound = userRepository.findByEmail(user.getEmail());

        if (userFound != null)
        {
            System.out.println("User already in database");
            return "register";
        }

        return "result";

    }
register.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Register Page</title>
</head>
<body>
<h1>Register page</h1>
<form action="#" th:action="@{/register}" th:object="${user}" method="post">

    <table>
        <tr>
           <td> <label for="firstName">First name:</label> </td>
            <td><input type="text" th:field="*{firstName}" id="firstName" /> </td>
            <td th:if="${#fields.hasErrors('firstName')}" th:errors="*{firstName}">firstName error</td>
        </tr>
        <tr>
            <td><label for="lastName">Last name:</label> </td>
            <td><input type="text" th:field="*{lastName}" id="lastName" /></td>
            <td th:if="${#fields.hasErrors('lastName')}" th:errors="*{lastName}">lastName error</td>
        </tr>
        <tr>
            <td><label for="email">email:</label> </td>
            <td><input type="text" th:field="*{email}" id="email" /></td>
            <td th:if="${#fields.hasErrors('email')}" th:errors="*{email}">email error</td>
        </tr>
        <tr>
            <td><button type="submit">Submit</button></td>
        </tr>

    </table>


</form>
<a th:href="@{/login}">Login</a>
</body>
</html>

如果这不起作用,您可以使用类似于邮递员的工具来发送请求,并通过调试服务器端代码找出接受请求的内容,从而找到有关错误的更多详细信息。如果spring安全性存在问题,如AuthenticationFailure,则应在控制台中记录错误。

好的,显然寄存器方法被卡住了

if (bindingResult.hasErrors()){
            return "register";
        } 

你能提供一些关于服务器返回的响应的更多信息吗?@NatFar服务器没有显示任何错误。浏览器正在尝试从localhost获取响应,但加载的页面与您需要在表单中包含csrf令牌或在Spring Security中禁用csrf的页面相同。服务器对同一页面的响应状态代码为200,但未找到任何错误代码
Try by adding consuming data type to headers. 

@RequestMapping(
    value = "/register",
    method = RequestMethod.POST,
    headers="Accept=application/x-www-form-urlencoded")
   public String registerSubmit(@Valid  User user, BindingResult bindingResult){
        if (bindingResult.hasErrors()){
            return "register";
        }.....
if (bindingResult.hasErrors()){
            return "register";
        }