我不能用html格式发送PUT数据

时间:2017-09-08 01:25:00

标签: java html spring spring-boot put

我有一个用HTML格式创建的表单

<form th:action="@{/forgotPassword}" th:object="${forgotPasswordDTO}" method="POST" role="form" id="forgotPasswordForm">
    <input type="hidden" name="_method" value="PUT"/>
...

我想将数据发送到控制器

    @PutMapping("/forgotPassword")
    public ModelAndView recoverPassword(
            @ModelAttribute("forgotPasswordDTO") @Valid ForgotPasswordDTO forgotPasswordDTO,
            BindingResult result,
            ModelMap modelMap
    ) {
...

BindingResult仍向我返回错误,因为@ModelAttribute对象的字段为空。

我可以使用html表单发送PUT查询吗?

1 个答案:

答案 0 :(得分:0)

如果您使用的是Spring Boot 1.5.6,那么我确实注意到了Thymeleaf th:method =&#34; put&#34;,您正在仿效,似乎已被打破。替换为th:method =&#34; post&#34;并将控制器方法更改为@PostMethod导致表单开始填充并正确验证。恢复到版本1.5.4为我纠正了问题。在两个版本中都应用了相同的过滤器,但1.5.6版本在控制器中导致空表单。我检查了两个项目,他们表现出相同的行为。