Установка имени представления в весеннем фильтре

У меня есть ErrorFilter , который расширяет Spring GenericFilterBean . Я хочу показать страницу с ошибкой, украшенную плитками, если какая-то ошибка

Есть ли способ задать имя представления из фильтра?


    errorFilter
    com.abc.filter.ErrorFilter
    
        errorPage
        /jsp/errorpage.jsp
    

Это конфигурация в web.xml и метод doFilter в errorfilter выглядит следующим образом:

public void doFilter(ServletRequest req, ServletResponse resp,
        FilterChain chain) throws IOException, ServletException {

    HttpServletRequest httpReq = (HttpServletRequest) req;
    StringBuffer reqUrl = httpReq.getRequestURL();
    try {
        chain.doFilter(req, resp);
    } catch (Exception ex) {
        String requestRepresentation = createRequestRepresentation(req);
        errorService.handleException(reqUrl.toString(), ex, requestRepresentation);
        req.getRequestDispatcher(
                getFilterConfig().getInitParameter("errorPage")).forward(req, resp);
    } catch (Error er) {
        errorService.handleError(reqUrl.toString(), er);
        req.getRequestDispatcher(
                getFilterConfig().getInitParameter("errorPage")).forward(req, resp);
    }
}

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

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

Изменить: По сути, мы хотим иметь возможность делать что-то похожее на метод контроллера, т.е. return "имя представления";

Уже пробовали:

  • httpResponse.sendRedirect ("errorPageView"); не работает, это перенаправляет на http: // server / fooerrorPageView
  • request.getRequestDispatcher ("errorPageView") .forward (request, response); также не работает, как указано выше (без перенаправления http, но дает то же содержание «нет такой ошибки страницы»)

9
задан Ahmed Ashour 28 September 2015 в 10:46
поделиться