Есть ли способ проверить, является ли HttpResponse перенаправлением или нет в перехватчике Spring? - PullRequest
2 голосов
/ 06 октября 2011

Я хотел бы написать Spring MVC HandlerInterceptorAdaptor, который делает разные вещи в методе postHandle (), основанном на том, является ли HttpResponse перенаправлением или нет.

Возможно ли это, и если да, то как?

public class MenuInterceptor extends HandlerInterceptorAdapter {
public final void postHandle(HttpServletRequest request,
                       HttpServletResponse response,
                       Object handler,
                       ModelAndView modelAndView) throws SystemException {
    if (redirect) {
        // do somethnig
    } else {
        // do something else
    }
}

РЕДАКТИРОВАТЬ: Есть ли лучший способ, чем это:

if (modelAndView.getView() instanceof RedirectView || modelAndView.getViewName().startsWith("redirect:")) {
    // Do something
 } else {
    // Do something else
 }

Ответы [ 2 ]

3 голосов
/ 06 октября 2011

В Spring MVC контроллер обычно отправляет перенаправление, возвращая View, то есть RedirectView или String viewName, которое начинается с префикса redirect:.Вы можете легко проверить любой из них.

0 голосов
/ 06 октября 2011

Какой именно «перехватчик» вы имеете в виду и / или что за «HttpResponse»?Если ваш HttpResponse имеет «код состояния» или «код ответа», вам просто нужно проверить это для кода перенаправления.Обычно 301 используется для перенаправлений.

...