Подтвердить что ты не робот

Как явно получить данные post в Spring MVC?

Есть ли способ получить данные сообщения? Я знаю, что spring обрабатывает связывание данных post с java-объектами. Но, учитывая два поля, которые я хочу обработать, как я могу получить эти данные?

Например, предположим, что моя форма имела два поля:

 <input type="text" name="value1" id="value1"/>
 <input type="text" name="value2" id="value2"/>

Как я могу получить эти значения в моем контроллере?

4b9b3361

Ответ 1

Если вы используете один из встроенных экземпляров контроллера, то одним из параметров вашего метода контроллера будет объект Request. Вы можете вызвать request.getParameter("value1"), чтобы получить значение данных Post.

Если вы используете аннотации Spring MVC, вы можете добавить аннотированный параметр к вашим параметрам метода:

@RequestMapping(value = "/someUrl")
public String someMethod(@RequestParam("value1") String valueOne) {
 //do stuff with valueOne variable here
}

Ответ 2

Spring MVC запускается поверх API сервлета. Итак, вы можете использовать HttpServletRequest#getParameter() для этого:

String value1 = request.getParameter("value1");
String value2 = request.getParameter("value2");

HttpServletRequest уже должен быть доступен вам внутри Spring MVC как один из аргументов метода метода handleRequest().

Ответ 3

Другой ответ на точный вопрос OP заключается в том, чтобы установить тип содержимого consumes в "text/plain", а затем объявить входной параметр @RequestBody String. Это передаст текст данных POST в объявленной переменной String (postPayload в следующем примере).

Конечно, это предполагает, что ваша полезная нагрузка POST - это текстовые данные (как указано в OP).

Пример:

    @RequestMapping(value = "/your/url/here", method = RequestMethod.POST, consumes = "text/plain")
    public ModelAndView someMethod(@RequestBody String postPayload) {    
        // ...    
    }