RequestMapping на наличие одного из нескольких параметров - PullRequest
2 голосов
/ 28 сентября 2011

У меня есть контроллер Spring3, в котором я использую аннотацию @RequestMapping. Я знаю, что могу использовать значение params для маршрутизации на основе наличия или отсутствия параметра url, но есть ли способ маршрутизации на основе наличия одного из двух параметров?

В идеале я бы хотел что-то вроде следующего:

@RequestMapping(value="/auth", params="error OR problem")
public ModelAndView errorInAuthenticate()

Где я направляю к errorInAuthenticate, если существует ошибка параметров ИЛИ проблема.

Ответы [ 4 ]

1 голос
/ 05 сентября 2013

просто сопоставьте оба параметра как not required и проверьте их:

@RequestMapping(value="/auth")
public ModelAndView errorInAuthenticate(@RequestParam(value="error", required=false) String errorParam, 
                                        @RequestParam(value="problem", required=false) String problemParam) {

    if(errorParam != null || problemParam != null) {
        //redirect
    }
}
1 голос
/ 26 октября 2012

К сожалению, параметры @RequestMapping объединяются с использованием AND, а не OR.( Источник )

0 голосов
/ 25 декабря 2011

вы можете использовать anser из этого вопроса

Несколько аннотаций Spring @RequestMapping

чтобы ответить на ваш вопрос - просто добавьте более одного RequestMapping и посмотрите, работает ли он?

@RequestMapping(value="/auth", params="error")
@RequestMapping(value="/auth", params="problem")
public ModelAndView errorInAuthenticate()

0 голосов
/ 13 декабря 2011

Я не думаю, что вы могли бы сделать это в атрибуте 'params' в @RequestMapping.Я предлагаю вам написать фильтр для этого и перенаправить, если параметр запроса содержит одно из этих значений.

Об этом есть обсуждение на Как мне сопоставить разные значения для параметра в одном и том же @RequestMapping вПружина MVC?

...