Как написать контроллер который будет ловить get запрос со всех страниц?

Есть сайт с информацией о фильмах с разными фильтрами по жанру и тд. В шапке у каждой странице есть поиск фильма по его названию. Сейчас чтоб ловить get запрос из поиска, нужно к каждому контроллеру добавлять проверку, пример -

@Controller
@RequestMapping("/movie")
public class MainController {

    @Autowired
    private PageNavBar pageNav;

    @Autowired
    private PageNavGetRequest pageNavGetRequest;

    @GetMapping()
    public String homePage(@RequestParam(name = "movietitle", required = false) String movieTitle, Model model) {
        if (movieTitle == null) {
            pageNav.setIdPage(1);
            model.addAttribute("movies", pageNav.getPageMovies());
            model.addAttribute("pages", pageNav.getNavBar());
            model.addAttribute("id", pageNav.getIdPage());
        } else {
            pageNavGetRequest.setIdPage(1);
            pageNavGetRequest.setRequest(movieTitle);
            model.addAttribute("movies", pageNavGetRequest.getSerchMovies());
            model.addAttribute("pages", pageNavGetRequest.getNavBar());
            model.addAttribute("id", pageNavGetRequest.getIdPage());
        }

        return "home";
    }

Как можно реализовать один контроллер, который будет проверять get запрос поиска фильма со всех страниц ?


Ответы (1 шт):

Автор решения: faoxis

Возможно вам подойдет специальный механизм хуков, который есть в спринге.

Благодаря ему вы сможете делать пост и предобработку, а ваши контроллеры даже не будут знать об этом. Таким образом вы отделите логику фильтрации и обработки запросов.

→ Ссылка