Spring MVC 3.0: как эффективно проверять переменную пути, которая является глобальной для всех сопоставлений запросов?

Я пытаюсь замочить ноги с помощью Spring MVC 3.0, и, хотя я могу заставить его работать, я не могу справиться с этим конкретный сценарий эффективно.

У меня есть контроллер с префиксом "/ {studyName} / module", и он выглядит примерно так: -

@Controller
@RequestMapping(value = "/{studyName}/module")
public class ModuleController {

    @RequestMapping(...)
    public ModelAndView getA(@PathVariable String studyName, ...) {
        if (!validStudy(studyName)) { return bad request; }
        ...
    }

    @RequestMapping(...)
    public ModelAndView getB(@PathVariable String studyName, ...) {
        if (!validStudy(studyName)) { return bad request; }
        ...
    }

    @RequestMapping(...)
    public ModelAndView getC(@PathVariable String studyName, ...) {
        if (!validStudy(studyName)) { return bad request; }
        ...
    }

    @RequestMapping(...)
    public ModelAndView getD(@PathVariable String studyName, ...) {
        if (!validStudy(studyName)) { return bad request; }
        ...
    }
}

Проблема с этим кодом в том, что проверка studyName разбросана повсюду методы и, возможно, методы других контроллеров. Есть ли способ выполнить проверку переменной пути studyName в одном месте без использования чего-то вроде АОП? Как вы справляетесь с такой проверкой?

Спасибо.

7
задан limc 14 January 2011 в 14:20
поделиться