if (requestModel == null || requestModel.getRequest() != request) { requestModel = new HttpRequestHashModel(request, response, objectWrapper); request.setAttribute(ATTR_REQUEST_MODEL, requestModel); request.setAttribute(
request = reqHash.getRequest(); session = request.getSession(false); response = reqHash.getResponse(); wrapper = reqHash.getObjectWrapper(); unwrapper = this.wrapper instanceof ObjectWrapperAndUnwrapper ? (ObjectWrapperAndUnwrapper) this.wrapper : null;
/** * Build a FreeMarker template model for the given model Map. * <p>The default implementation builds a {@link AllHttpScopesHashModel}. * @param model the model to use for rendering * @param request current HTTP request * @param response current servlet response * @return the FreeMarker template model, as a {@link SimpleHash} or subclass thereof */ protected SimpleHash buildTemplateModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) { AllHttpScopesHashModel fmModel = new AllHttpScopesHashModel(getObjectWrapper(), getServletContext(), request); fmModel.put(FreemarkerServlet.KEY_JSP_TAGLIBS, this.taglibFactory); fmModel.put(FreemarkerServlet.KEY_APPLICATION, this.servletContextHashModel); fmModel.put(FreemarkerServlet.KEY_SESSION, buildSessionModel(request, response)); fmModel.put(FreemarkerServlet.KEY_REQUEST, new HttpRequestHashModel(request, response, getObjectWrapper())); fmModel.put(FreemarkerServlet.KEY_REQUEST_PARAMETERS, new HttpRequestParametersHashModel(request)); fmModel.putAll(model); return fmModel; }
private static String resolveRelativeUri(String uri) throws TaglibGettingException { TemplateModel reqHash; try { reqHash = Environment.getCurrentEnvironment().getVariable( FreemarkerServlet.KEY_REQUEST_PRIVATE); } catch (TemplateModelException e) { throw new TaglibGettingException("Failed to get FreemarkerServlet request information", e); } if (reqHash instanceof HttpRequestHashModel) { HttpServletRequest req = ((HttpRequestHashModel) reqHash).getRequest(); String pi = req.getPathInfo(); String reqPath = req.getServletPath(); if (reqPath == null) { reqPath = ""; } reqPath += (pi == null ? "" : pi); // We don't care about paths with ".." in them. If the container // wishes to resolve them on its own, let it be. int lastSlash = reqPath.lastIndexOf('/'); if (lastSlash != -1) { return reqPath.substring(0, lastSlash + 1) + uri; } else { return '/' + uri; } } throw new TaglibGettingException( "Can't resolve relative URI " + uri + " as request URL information is unavailable."); }
/** * Build a FreeMarker template model for the given model Map. * <p>The default implementation builds a {@link AllHttpScopesHashModel}. * @param model the model to use for rendering * @param request current HTTP request * @param response current servlet response * @return the FreeMarker template model, as a {@link SimpleHash} or subclass thereof */ protected SimpleHash buildTemplateModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) { AllHttpScopesHashModel fmModel = new AllHttpScopesHashModel(getObjectWrapper(), getServletContext(), request); fmModel.put(FreemarkerServlet.KEY_JSP_TAGLIBS, this.taglibFactory); fmModel.put(FreemarkerServlet.KEY_APPLICATION, this.servletContextHashModel); fmModel.put(FreemarkerServlet.KEY_SESSION, buildSessionModel(request, response)); fmModel.put(FreemarkerServlet.KEY_REQUEST, new HttpRequestHashModel(request, response, getObjectWrapper())); fmModel.put(FreemarkerServlet.KEY_REQUEST_PARAMETERS, new HttpRequestParametersHashModel(request)); fmModel.putAll(model); return fmModel; }
@Override public HttpServletRequest getRequest() throws IOException, Exception { HttpRequestHashModel httpRequestHashModel = (HttpRequestHashModel) environment.getGlobalVariable("Request"); if (null != httpRequestHashModel) { return httpRequestHashModel.getRequest(); } return null; }
if (Lang.isEmpty(requestModel) || !Lang.equals(requestModel.getRequest(), request)) { requestModel = new HttpRequestHashModel(request, response, wrapper); request.setAttribute(ATTR_REQUEST_MODEL, requestModel); if (Lang.isEmpty(reqParametersModel) || !Lang.equals(requestModel.getRequest(), request)) { reqParametersModel = new HttpRequestParametersHashModel(request); request.setAttribute(ATTR_REQUEST_PARAMETERS_MODEL, reqParametersModel);
protected void addTaglibSupportData(Map<String, Object> data, WebContext webCtx) { final ServletContext servletContext = webCtx.getServletContext(); try { data.put(FreemarkerServlet.KEY_JSP_TAGLIBS, checkTaglibFactory(servletContext)); data.put(FreemarkerServlet.KEY_APPLICATION_PRIVATE, checkServletContextModel(servletContext)); data.put(FreemarkerServlet.KEY_REQUEST_PRIVATE, new HttpRequestHashModel(webCtx.getRequest(), webCtx.getResponse(), cfg.getObjectWrapper())); } catch (ServletException e) { // this should be an IllegalStateException (i.e there's no reason we should end up here) but this constructor isn't available in 1.4 throw new RuntimeException("Can't initialize taglib support for FreeMarker: ", e); } }
this.request = reqHash.getRequest(); this.session = request.getSession(false); this.response = reqHash.getResponse(); this.wrapper = reqHash.getObjectWrapper();
@Override public HttpServletRequest getRequest() throws IOException, Exception { HttpRequestHashModel httpRequestHashModel = (HttpRequestHashModel) environment.getGlobalVariable("Request"); if (null != httpRequestHashModel) { return httpRequestHashModel.getRequest(); } return null; }
if ((requestModel == null) || (requestModel.getRequest() != request)) { requestModel = new HttpRequestHashModel(request, response, wrapper); request.setAttribute(ATTR_REQUEST_MODEL, requestModel); if (reqParametersModel == null || requestModel.getRequest() != request) { reqParametersModel = new HttpRequestParametersHashModel(request); request.setAttribute(ATTR_REQUEST_PARAMETERS_MODEL, reqParametersModel);
root.put("requestAttributes", new HttpRequestHashModel(request, FreeMarkerWorker.getDefaultOfbizWrapper()));
request = reqHash.getRequest(); session = request.getSession(false); response = reqHash.getResponse(); wrapper = reqHash.getObjectWrapper(); unwrapper = this.wrapper instanceof ObjectWrapperAndUnwrapper ? (ObjectWrapperAndUnwrapper) this.wrapper : null;
if(reqHash instanceof HttpRequestHashModel) { HttpServletRequest req = ((HttpRequestHashModel)reqHash).getRequest(); String pi = req.getPathInfo(); String reqPath = req.getServletPath();
if (requestModel == null || requestModel.getRequest() != request) requestModel = new HttpRequestHashModel(request, response, wrapper); request.setAttribute(ATTR_REQUEST_MODEL, requestModel); request.setAttribute(
/** * Build a FreeMarker template model for the given model Map. * <p>The default implementation builds a {@link AllHttpScopesHashModel}. * @param model the model to use for rendering * @param request current HTTP request * @param response current servlet response * @return the FreeMarker template model, as a {@link SimpleHash} or subclass thereof */ protected SimpleHash buildTemplateModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) { AllHttpScopesHashModel fmModel = new AllHttpScopesHashModel(getObjectWrapper(), getServletContext(), request); fmModel.put(FreemarkerServlet.KEY_JSP_TAGLIBS, this.taglibFactory); fmModel.put(FreemarkerServlet.KEY_APPLICATION, this.servletContextHashModel); fmModel.put(FreemarkerServlet.KEY_SESSION, buildSessionModel(request, response)); fmModel.put(FreemarkerServlet.KEY_REQUEST, new HttpRequestHashModel(request, response, getObjectWrapper())); fmModel.put(FreemarkerServlet.KEY_REQUEST_PARAMETERS, new HttpRequestParametersHashModel(request)); fmModel.putAll(model); return fmModel; }
request = reqHash.getRequest(); session = request.getSession(false); response = reqHash.getResponse(); wrapper = reqHash.getObjectWrapper(); unwrapper = this.wrapper instanceof ObjectWrapperAndUnwrapper ? (ObjectWrapperAndUnwrapper) this.wrapper : null;
private static String resolveRelativeUri(String uri) throws TaglibGettingException { TemplateModel reqHash; try { reqHash = Environment.getCurrentEnvironment().getVariable( FreemarkerServlet.KEY_REQUEST_PRIVATE); } catch (TemplateModelException e) { throw new TaglibGettingException("Failed to get FreemarkerServlet request information", e); } if (reqHash instanceof HttpRequestHashModel) { HttpServletRequest req = ((HttpRequestHashModel) reqHash).getRequest(); String pi = req.getPathInfo(); String reqPath = req.getServletPath(); if (reqPath == null) { reqPath = ""; } reqPath += (pi == null ? "" : pi); // We don't care about paths with ".." in them. If the container // wishes to resolve them on its own, let it be. int lastSlash = reqPath.lastIndexOf('/'); if (lastSlash != -1) { return reqPath.substring(0, lastSlash + 1) + uri; } else { return '/' + uri; } } throw new TaglibGettingException( "Can't resolve relative URI " + uri + " as request URL information is unavailable."); }
if (requestModel == null || requestModel.getRequest() != request) { requestModel = new HttpRequestHashModel(request, response, objectWrapper); request.setAttribute(ATTR_REQUEST_MODEL, requestModel); request.setAttribute(
public void initJspRequestSupport(GenericServlet servlet, HttpServletRequest request, HttpServletResponse response) { if (rendering instanceof FreemarkerEngine) { FreemarkerEngine fm = (FreemarkerEngine) rendering; HttpRequestHashModel requestModel = new HttpRequestHashModel(request, response, fm.getObjectWrapper()); fm.setSharedVariable("__FreeMarkerServlet.Request__", requestModel); fm.setSharedVariable("Request", requestModel); fm.setSharedVariable("RequestParameters", new HttpRequestParametersHashModel(request)); // HttpSessionHashModel sessionModel = null; // HttpSession session = request.getSession(false); // if(session != null) { // sessionModel = (HttpSessionHashModel) // session.getAttribute(ATTR_SESSION_MODEL); // if (sessionModel == null || sessionModel.isZombie()) { // sessionModel = new HttpSessionHashModel(session, wrapper); // session.setAttribute(ATTR_SESSION_MODEL, sessionModel); // if(!sessionModel.isZombie()) { // initializeSession(request, response); // } // } // } // else { // sessionModel = new HttpSessionHashModel(servlet, request, // response, fm.getObjectWrapper()); // } // sessionModel = new HttpSessionHashModel(request, response, // fm.getObjectWrapper()); // fm.setSharedVariable("Session", sessionModel); } }