Как явно получить данные поста в Spring MVC? - PullRequest
69 голосов
/ 22 марта 2010

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

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

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

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

Ответы [ 3 ]

117 голосов
/ 22 марта 2010

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

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

@RequestMapping(value = "/someUrl")
public String someMethod(@RequestParam("value1") String valueOne) {
 //do stuff with valueOne variable here
}
30 голосов
/ 30 июля 2014

Другой ответ на точный вопрос ОП - установить тип контента 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) {    
        // ...    
    }
25 голосов
/ 22 марта 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...