Spring mvc mapping заголовки и параметры - PullRequest
1 голос
/ 18 июня 2011

Я хотел бы поддержать сценарий, в котором конкретная часть значения может быть отправлена ​​в мое приложение с помощью параметра или заголовка. У меня есть несколько аргументов, которые я хотел бы поддержать таким образом.

Как лучше всего добиться этого с помощью аннотаций Spring mvc?

Обратите внимание, что иногда мне отправляют заголовок, а иногда параметр с тем же ключом. С моей точки зрения приложения это не имеет никакого значения вообще. Лучший способ для меня - сопоставить его с JavaBean.

Возможно ли это?

Йоси

Ответы [ 2 ]

3 голосов
/ 18 июня 2011

Вы также можете отобразить оба из них в первую очередь непустыми. Как:

ModelAndView methodDispatcher(@RequestParam(value = "X-Param", defaultValue = "") string header, @RequestParam(value = "param", defaultValue = "") string param) {
    if (StringUtils.isNotEmpty(param)) {
       return method(param);
    }
    if (StringUtils.isNotEmpty(header)) {
       return method(header);
    }
    throw BadRequestException();
}

ModelAndView method(String param) {}
2 голосов
/ 18 июня 2011

Лучший вариант - иметь собственный WebArgumentResolver. Затем вы можете аннотировать параметр, скажем, @ParamOrHeader. Смотрите пример здесь Как передать атрибут сеанса в качестве аргумента метода (параметра) в Spring MVC . Речь идет об атрибуте сеанса, но его будет просто изменить на param-or-header

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