Есть ли способ получить сами данные поста? Я знаю, что Spring обрабатывает привязку почтовых данных к объектам Java. Но, учитывая два поля, которые я хочу обработать, как я могу получить эти данные?
Например, предположим, что у моей формы два поля:
<input type="text" name="value1" id="value1"/>
<input type="text" name="value2" id="value2"/>
Как мне получить эти значения в моем контроллере?
java
spring-mvc
Ройхови
источник
источник
Другой ответ на точный вопрос 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) { // ... }
источник
value1
иvalue2
, это создаст одну строку для обоих значений? Тогда вам нужно будет проанализировать отдельные значения? Зачем это делать, если вы можете указать / получить каждое значение индивидуально, как в принятом ответе?RequestMethod.POST
. Я даже добавил,@CrossOrigin(origins = "*")
но все равно получаю то же самое ... Не знаю, что происходит ... Я использовал ту же подпись, что и ваш ответ (за исключением того, что в моем случае онsomeMethod
возвращаетString
) ...Spring MVC работает поверх Servlet API. Итак,
HttpServletRequest#getParameter()
для этого можно использовать :String value1 = request.getParameter("value1"); String value2 = request.getParameter("value2");
Он
HttpServletRequest
уже должен быть доступен вам внутри Spring MVC в качестве одного из аргументовhandleRequest()
метода.источник
RequestMethod.POST
. Я даже добавил,@CrossOrigin(origins = "*")
но все равно получаю то же самое ... Не знаю, что происходит ... Я использовал ту же подпись, что и ваш ответ (за исключением того, что в моем случае онsomeMethod
возвращаетString
) ...Вы можете просто передать нужный атрибут без каких-либо аннотаций в вашем контроллере:
@RequestMapping(value = "/someUrl") public String someMethod(String valueOne) { //do stuff with valueOne variable here }
Работает с GET и POST
источник