我有一个用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查询吗?
答案 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版本在控制器中导致空表单。我检查了两个项目,他们表现出相同的行为。