You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Jose Luis Martinez Avial <jl...@bpi-gruposantander.com> on 2007/08/21 21:13:18 UTC

Tiles: definition without path

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 :
com.bpi.isis.customer.web.vista.PortfolioValGraphController@20f237
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?


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: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Tiles: definition without path

Posted by Paul Benedict <pb...@apache.org>.
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 <jl...@bpi-gruposantander.com>
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 :
> com.bpi.isis.customer.web.vista.PortfolioValGraphController@20f237
> 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?
>
>
> 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: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>