Как обрабатываются параметры POST в Spring 3, когда некоторые находятся в URL? - PullRequest
2 голосов
/ 19 сентября 2011

Я обычно получаю параметры POST, как показано ниже:

@RequestMapping(method = RequestMethod.POST)
public ModelAndView create(
    @RequestParam(value = "first_name", required = false) String firstName,
    HttpServletRequest request
) {

Но что, если в URL есть некоторые параметры, такие как http://example.com/post/path?last_name=Smith? Должен ли Spring получать все параметры как из URL, так и из данных POST, когда RequestMapping - это POST?

По сути, Facebook отправляет параметр signature_request через POST, а другие параметры, например request_ids, одновременно через параметры URL. Мне нужно получить оба.

Ответы [ 2 ]

4 голосов
/ 19 сентября 2011

Но что, если в URL есть некоторые параметры, такие как http://example.com/post/path?last_name=Smith? Предполагается ли, что Spring извлекает все параметры как из URL, так и из данных POST, когда RequestMapping равен POST?1006 * Да, Spring получит все значения параметров (в форме и URL) для запроса POST.но в вашем случае

 @RequestParam(value = "first_name", required = false) String firstName, 

будет нулевым.Потому что в вашем URL, имя параметра last_name.: D

0 голосов
/ 19 сентября 2011

Я не уверен, что это отвечает на ваш вопрос полезным способом, но, говоря о Linux:

  1. Параметры POST появляются на stdin на сервере;

  2. Параметры GET (указанные в URL) отображаются в QUERY_STRING.

HTH

...