private DispatchRequest getDispatchRequest(Request request) { Request result = request; while (!(result instanceof DispatchRequest) && result instanceof RequestWrapper) { result = ((RequestWrapper) result).getWrappedRequest(); } if (!(result instanceof DispatchRequest)) { result = null; } return (DispatchRequest) result; } }
/** * Opens a TilesRequestContext until it finds a ServletTilesRequestContext. * * @param request The request to open. * @return The servlet-based request context. * @throws NotAServletEnvironmentException If a servlet-based request * context could not be found. */ public static ServletRequest getServletRequest(Request request) { Request currentRequest = request; while (true) { if (currentRequest == null) { throw new NotAServletEnvironmentException("Last Tiles request context is null"); } if (currentRequest instanceof ServletRequest) { return (ServletRequest) currentRequest; } if (!(currentRequest instanceof RequestWrapper)) { throw new NotAServletEnvironmentException("Not a Servlet environment, not supported"); } currentRequest = ((RequestWrapper) currentRequest).getWrappedRequest(); } }