Description
Such code
if (stack == null) { HttpServletResponse res = (HttpServletResponse) pageContext.getResponse(); Dispatcher du = Dispatcher.getInstance(); if (du == null) { throw new ConfigurationException("The Struts dispatcher cannot be found. This is usually caused by "+ "using Struts tags without the associated filter. Struts tags are only usable when the request "+ "has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag."); } stack = du.getContainer().getInstance(ValueStackFactory.class).createValueStack(); HttpParameters params = HttpParameters.create(req.getParameterMap()).build(); Map<String, Object> extraContext = du.createContextMap(new RequestMap(req), params, new SessionMap<>(req), new ApplicationMap(pageContext.getServletContext()), req, res); extraContext.put(ServletActionContext.PAGE_CONTEXT, pageContext); stack.getContext().putAll(extraContext); req.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, stack); // also tie this stack/context to the ThreadLocal ActionContext.of(stack.getContext()).bind(); }
should be replaced with an exception, if stack is null, it means tag was used out of action scope.
Attachments
Issue Links
- links to