Spring RestController POST принимает базовую форму HTML - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь опубликовать простую HTML-форму в Spring RestController, используя @ModelAttribute и MediaType.APPLICATION_FORM_URLENCODED_VALUE как используемый тип данных.Я дважды проверил все поля формы, которые соответствуют моему компоненту запроса.

Когда запрос входит в сопоставленный метод, все поля 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>

1 Ответ

2 голосов
/ 21 сентября 2019

Вам не хватает атрибута name во входных данных HTML, атрибут id не имеет смысла при публикации формы HTML

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