Spring RestController POST 接受基本 HTML 表单

Spring RestController POST accepting a basic HTML form

我正在尝试 post 一个简单的 HTML 表单到 Spring RestController 使用 @ModelAttribute 和 MediaType.APPLICATION_FORM_URLENCODED_VALUE 作为消耗的数据类型。我已经仔细检查了所有与我的请求 bean 匹配的表单字段。

当请求进入映射方法时,所有的请求bean字段都为空。

@RestController
@EnableWebMvc
public class WebServiceController {

    @RequestMapping(
        value = "/test", 
        method = RequestMethod.POST,
        consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
    public ResponseEntity<?> post(@ModelAttribute FormBean request){
        // request.getParam() == null   
        return ResponseEntity.ok().build();
    }
}
public class FormBean {

    private String param1;

    public String getParam1() {
        return param1;
    }

    public void setParam1(String param1) {
        this.param1 = param1;
    }

}
<html>
    <head>
        <title>Test Form</title>
    </head>
    <body>
        <form action="/test" method="POST">
            <input type="text" id="param1">
            <button type="submit">Submit</button>
        </form>
    </body>
</html>

您在 HTML 输入中缺少 name 属性,id 属性在发布 HTML 表单时毫无意义

<input type="text" name="param1">