Java Spring-MVC请求方法&x27;邮政';不支持->;HTTP 405

Java Spring-MVC请求方法&x27;邮政';不支持->;HTTP 405,java,spring,spring-boot,model-view-controller,thymeleaf,Java,Spring,Spring Boot,Model View Controller,Thymeleaf,被困了约4个小时,想知道Spring MVC/thymeleaf应用程序中的错误在哪里 我的本地目标是在主页上提交登录/通行证表单后呈现admin.html。 控制器: @Controller public class HomeController { @GetMapping("/") public String getHome(Model m) { m.addAttribute( "user",new User());

被困了约4个小时,想知道Spring MVC/thymeleaf应用程序中的错误在哪里
我的本地目标是在主页上提交登录/通行证表单后呈现admin.html。

控制器:

@Controller
public class HomeController {
        @GetMapping("/")
        public String getHome(Model m) {
            m.addAttribute( "user",new User());
            return "/home";
        }
        @PostMapping("/")
        public String getSubmit(@ModelAttribute User user){

            return "/admin";
        }
}
home.html:

  <form action="#" th:action="@{/admin}" th:object="${user}" method="post">
            <p class="txt">Name: <input type="text" th:field="*{name}"/></p>
            <p class="txt">Password: <input type="text" th:field="*{password}"/></p>
            <p><input class="button" type="submit" value="Submit" />
                <input class="button" type="reset" value="Reset" /></p>
        </form >
所以我在谷歌上搜索了很多想法,从pom.xml中删除了spring安全性,

试图将@RequestedMapping与RequestMethod.PUT一起使用,-不可能,它不起作用。

您的控制器应该是这样的:

@Controller
public class HomeController {
    @GetMapping("/")
    public String getHome(Model m) {
        m.addAttribute("user", new User());
        return "/home";
    }

    @PostMapping("/admin")
    public String getSubmit(User user) {   
        return "/admin";
    }
}
home.html应该类似于:

<form action="@{/admin}" th:object="${user}" method="post">
    <p class="txt">Name: <input type="text" th:field="*{name}"/></p>
    <p class="txt">Password: <input type="text" th:field="*{password}"/></p>
    <p><input class="button" type="submit" value="Submit" />
    <input class="button" type="reset" value="Reset"/></p>
</form >

名称:

密码:


您的控制器应如下所示:

@Controller
public class HomeController {
    @GetMapping("/")
    public String getHome(Model m) {
        m.addAttribute("user", new User());
        return "/home";
    }

    @PostMapping("/admin")
    public String getSubmit(User user) {   
        return "/admin";
    }
}
home.html应该类似于:

<form action="@{/admin}" th:object="${user}" method="post">
    <p class="txt">Name: <input type="text" th:field="*{name}"/></p>
    <p class="txt">Password: <input type="text" th:field="*{password}"/></p>
    <p><input class="button" type="submit" value="Submit" />
    <input class="button" type="reset" value="Reset"/></p>
</form >

名称:

密码:


您的表单引用
th:action=“@{/admin}”
作为目标。您的控制器不映射
/admin
,而只映射根
/

您必须将目标更改为
/


如果要呈现模板
/admin
,则返回值是正确的。如果您想重定向到
/admin
,以便新的控制器可以处理此问题,那么您必须改为编写
重定向:/admin

您的表单引用
th:action=“@{/admin}”
作为目标。您的控制器不映射
/admin
,而只映射根
/

您必须将目标更改为
/


如果要呈现模板
/admin
,则返回值是正确的。如果您想重定向到
/admin
,以便新的控制器可以处理此问题,那么您必须改为编写
重定向:/admin

th:action=“@{/admin}”-重定向到api->/admin,而您在控制器中没有该api?th:action=“@{/admin}”-重定向到api->/admin,而您在控制器中没有该api?更改目标无效。我写了AdminController,但在每次移动中添加新的控制器看起来都很糟糕。无论如何谢谢你!改变目标是行不通的。我写了AdminController,但在每次移动中添加新的控制器看起来都很糟糕。无论如何谢谢你!