Please see: https://issues.apache.org/struts/browse/STR-1981
Paul On 8/21/07, Jose Luis Martinez Avial <[EMAIL PROTECTED]> wrote: > > I've tried to modify the execute method of TilesPreProcessor from > > ... > if(uri == null) > { > log.debug("no uri computed, so pass to next command"); > return false; > } > if(controller != null) > { > log.trace("Execute controller: " + controller); > controller.execute(tileContext, sacontext.getRequest(), > sacontext.getResponse(), sacontext.getContext()); > } > ... > > To > ... > if (controller != null) { > log.trace("Execute controller: " + controller); > > controller.execute(tileContext,sacontext.getRequest(),sacontext.getRespo > nse(),sacontext.getContext()); > } > if (uri == null) { > log.debug("no uri computed, so pass to next command"); > sacontext.setForwardConfig( null ); > return false; > } > ... > > So it execute the controller even if the uri is null, and after that if > the uri is null, it will put the ForwardConfig to null and return, > because is the end of the processing. It works for me, but I don't know > all the implications of this change. > > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > On Behalf Of Paul Benedict > Sent: Tuesday, August 21, 2007 18:32 PM > To: Struts Users Mailing List > Subject: Re: Tiles: definition without path > > I'll have to investigate this. > > On 8/21/07, Jose Luis Martinez Avial <[EMAIL PROTECTED]> > wrote: > > > > The question is that I don't need to forward to a JSP. The controller > > takes the HttpServletResponse and writes in it, and that is the > response > > to the user. Before that I put the image as an attribute in the > request, > > and in a JSP template I recovered it form the request, and wrote it, > but > > the tomcat always said that the Output stream had already been closed. > > > > Is there anyway to return a image to the user using a controller > without > > using a JSP? > > > > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > > On Behalf Of Paul Benedict > > Sent: Tuesday, August 21, 2007 18:18 PM > > To: Struts Users Mailing List > > Subject: Re: Tiles: definition without path > > > > I don't understand why you haven't provided a path attribute on the > > definition. Definitions need to resolve to a resource. I don't see a > JSP > > listed. > > > > On 8/21/07, Jose Luis Martinez Avial > <[EMAIL PROTECTED]> > > wrote: > > > > > > I'm using Struts 1.3.9, with Tiles. I've one action that calls to a > > > definition > > > struts-config.xml > > > <action path="/customer/verGraphPortfolio" > > > forward="verGraphPortfolio.pantalla"/> > > > > > > riles-def..xml > > > <definition name=" verGraphPortfolio.pantalla" > > > > > > controllerClass="com.bpi.isis.customer.web.vista.PortfolioValGraphContro > > > ller"/> > > > > > > In the PortfolioValGraphController I have this code > > > > > > .... > > > response.setHeader("Content-Disposition", "inline"); > > > response.setHeader("Cache-Control", "no-cache"); > > > response.setHeader("Cache-Control", "no-store"); > > > response.setHeader("Cache-Control", > > "must-revalidate"); > > > > response.getOutputStream().write(baos.toByteArray()); > > > response.getOutputStream().flush(); > > > response.getOutputStream().close(); > > > response.setStatus(HttpServletResponse.SC_OK); > > > baos.close(); > > > baos = null; > > > ..... > > > > > > If I don't put the path attribute in the definition, the controller > is > > > not invocated and the user doesn't see the image. In the logs your > can > > > see this: > > > > > > 21 Aug 2007 13:11:36,711 DEBUG > > > org.apache.struts.tiles.ComponentDefinition - Controller created : > > > [EMAIL PROTECTED] > > > 21 Aug 2007 13:11:36,711 DEBUG > > > org.apache.struts.tiles.commands.TilesPreProcessor - no uri > computed, > > > so pass to next command > > > 21 Aug 2007 13:11:36,711 DEBUG > > > org.apache.struts.chain.commands.ActionCommandBase - Executing > > > org.apache.struts.chain.commands.servlet.PerformForward > > > 21 Aug 2007 13:11:36,711 DEBUG org.apache.struts.util.RequestUtils > - > > > No actionId found for verGraphPortfolio.pantalla > > > 21 Aug 2007 13:11:36,711 DEBUG > > > org.apache.struts.chain.commands.ExceptionCatcher - Attempting to > > > handle a thrown exception > > > 21 Aug 2007 13:11:36,711 DEBUG > > > org.apache.struts.chain.commands.ExceptionCatcher - Calling > > > exceptionCommand 'servlet-exception' > > > 21 Aug 2007 13:11:36,711 DEBUG > > > org.apache.struts.chain.commands.ActionCommandBase - Executing > > > org.apache.struts.chain.commands.servlet.ExceptionHandler > > > 21 Aug 2007 13:11:36,711 DEBUG > > > org.apache.struts.chain.commands.AbstractExceptionHandler - See if > > > actionConfig > > > > > > ActionConfig[cancellable=false,path=/customer/verGraphPortfolio,validate > > > =true,forward=verGraphPortfolio.pantalla,scope=session has an > > > exceptionConfig for java.lang.IllegalArgumentException > > > 21 Aug 2007 13:11:36,711 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look locally for java.lang.IllegalArgumentException > > > 21 Aug 2007 13:11:36,711 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look globally for java.lang.IllegalArgumentException > > > 21 Aug 2007 13:11:36,711 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look locally for java.lang.RuntimeException > > > 21 Aug 2007 13:11:36,711 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look globally for java.lang.RuntimeException > > > 21 Aug 2007 13:11:36,711 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look locally for java.lang.Exception > > > 21 Aug 2007 13:11:36,711 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look globally for java.lang.Exception > > > 21 Aug 2007 13:11:36,711 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look locally for java.lang.Throwable > > > 21 Aug 2007 13:11:36,711 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look globally for java.lang.Throwable > > > 21 Aug 2007 13:11:36,711 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look locally for java.lang.Object > > > 21 Aug 2007 13:11:36,711 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look globally for java.lang.Object > > > 21 Aug 2007 13:11:36,711 WARN > > > org.apache.struts.chain.commands.AbstractExceptionHandler - > Unhandled > > > exception > > > java.lang.IllegalArgumentException: Path verGraphPortfolio.pantalla > > does > > > not start with a "/" character > > > at > > > > > > org.apache.catalina.core.ApplicationContext.getRequestDispatcher(Applica > > > tionContext.java:379) > > > at > > > > > > org.apache.catalina.core.ApplicationContextFacade.getRequestDispatcher(A > > > pplicationContextFacade.java:195) > > > at > > > > > > org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward( > > > PerformForward.java:107) > > > at > > > > > > org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformF > > > orward.java:96) > > > > > > > > > > > > > > > If I put path = "", then the controller is invocated, and the user > see > > > the image, but you see this logs > > > 21 Aug 2007 13:11:28,320 INFO > > > org.apache.struts.tiles.commands.TilesPreProcessor - Tiles process > > > complete; forward to > > > 21 Aug 2007 13:11:28,320 DEBUG > > > org.apache.struts.chain.commands.ExceptionCatcher - Attempting to > > > handle a thrown exception > > > 21 Aug 2007 13:11:28,320 DEBUG > > > org.apache.struts.chain.commands.ExceptionCatcher - Calling > > > exceptionCommand 'servlet-exception' > > > 21 Aug 2007 13:11:28,320 DEBUG > > > org.apache.struts.chain.commands.ActionCommandBase - Executing > > > org.apache.struts.chain.commands.servlet.ExceptionHandler > > > 21 Aug 2007 13:11:28,320 DEBUG > > > org.apache.struts.chain.commands.AbstractExceptionHandler - See if > > > actionConfig > > > > > > ActionConfig[cancellable=false,path=/divisas/verGraphExchRate,validate=t > > > rue,forward=verGraphExchRate.pantalla,scope=session has an > > > exceptionConfig for java.lang.IllegalArgumentException > > > 21 Aug 2007 13:11:28,320 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look locally for java.lang.IllegalArgumentException > > > 21 Aug 2007 13:11:28,320 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look globally for java.lang.IllegalArgumentException > > > 21 Aug 2007 13:11:28,320 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look locally for java.lang.RuntimeException > > > 21 Aug 2007 13:11:28,320 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look globally for java.lang.RuntimeException > > > 21 Aug 2007 13:11:28,320 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look locally for java.lang.Exception > > > 21 Aug 2007 13:11:28,320 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look globally for java.lang.Exception > > > 21 Aug 2007 13:11:28,320 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look locally for java.lang.Throwable > > > 21 Aug 2007 13:11:28,320 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look globally for java.lang.Throwable > > > 21 Aug 2007 13:11:28,320 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look locally for java.lang.Object > > > 21 Aug 2007 13:11:28,320 DEBUG > org.apache.struts.config.ActionConfig > > - > > > findException: look globally for java.lang.Object > > > 21 Aug 2007 13:11:28,320 WARN > > > org.apache.struts.chain.commands.AbstractExceptionHandler - > Unhandled > > > exception > > > java.lang.IllegalArgumentException: Path does not start with a "/" > > > character > > > at > > > > > > org.apache.catalina.core.ApplicationContext.getRequestDispatcher(Applica > > > tionContext.java:379) > > > at > > > > > > org.apache.catalina.core.ApplicationContextFacade.getRequestDispatcher(A > > > pplicationContextFacade.java:195) > > > at > > > > > > org.apache.struts.tiles.commands.TilesPreProcessor.getRequiredDispatcher > > > (TilesPreProcessor.java:274) > > > at > > > > > > org.apache.struts.tiles.commands.TilesPreProcessor.doForward(TilesPrePro > > > cessor.java:257) > > > at > > > > > > org.apache.struts.tiles.commands.TilesPreProcessor.execute(TilesPreProce > > > ssor.java:217) > > > at > > > org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) > > > at > > > > > > org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.jav > > > a:304) > > > > > > Do I need to put a JSP in the path? An empty JSP? Is there any way > to > > > avoid this? > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > Internet communications are not secure and therefore Banco > Santander International does not accept legal responsibility for > the contents of this message. Any views or opinions presented are > solely those of the author and do not necessarily represent those > of Banco Santander International unless otherwise specifically > stated. > > Las comunicaciones via Internet no son seguras y por lo tanto > Banco Santander International no asume responsabilidad legal ni > de ningun otro tipo por el contenido de este mensaje. Cualquier > opinion transmitida pertenece unicamente al autor y no > necesariamente representa la opinion del Banco Santander > International a no ser que este expresamente detallado. > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >