Tôi đã là ErrorFilter
kéo dài mùa xuân GenericFilterBean
. Tôi muốn hiển thị một trang lỗi được trang trí bằng các ô nếu một số lỗi xảy ra.Đặt tên chế độ xem trong bộ lọc lò xo
Có cách nào để đặt tên chế độ xem từ bộ lọc không?
<filter>
<filter-name>errorFilter</filter-name>
<filter-class>com.abc.filter.ErrorFilter</filter-class>
<init-param>
<param-name>errorPage</param-name>
<param-value>/jsp/errorpage.jsp</param-value>
</init-param>
</filter>
Đây là cấu hình trong web.xml
và doFilter
phương pháp trong errorfilter
như sau:
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);
}
}
Các errorpage hiện tại không được trang trí bằng gạch, vì vậy tôi muốn để trang trí nó với bình thường đầu trang và chân trang và gọi tên chế độ xem đó từ bộ lọc.
Có thể không?
Edit: Về cơ bản chúng tôi muốn để có thể làm điều gì đó tương tự đến controller-phương pháp ví dụ trở lại "tên view";
Đã thử:
- httpResponse.sendRedirect ("errorPageView"); không hoạt động, nó chuyển hướng đến http://server/fooerrorPageView
- request.getRequestDispatcher ("errorPageView"). Forward (request, response); cũng không tương tự như trên (không có chuyển hướng http, nhưng cho cùng nội dung "không có lỗi trang")
_sendRedirect_ sẽ chuyển hướng trình duyệt của khách hàng đến URL được chỉ định, bỏ qua bất kỳ độ phân giải tên chế độ xem nào. –