struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Laurie Harper <lau...@holoweb.net>
Subject Re: including error-tiles on validation error / exception
Date Wed, 09 Nov 2005 23:37:58 GMT
Andreas Kurtz wrote:
> hi folks,
> 
> i have some questions on using struts with tiles and the corresponding 
> error-handling.
> 
> we've created a tiles-defintion mainLayout:
> 
>     <definition name="mainLayout" path="/layout/basicLayout.jsp">
>          <put name="banner" value="/layout/common/banner.jsp" />
>             ...
>          <put name="footer" value="/layout/common/footer.jsp" />
>     </definition>
> 
> from which other definitions were derived (e.g. a page displaying a 
> contact-form):
> 
>     <definition name="contact" extends="mainLayout">
>         <put name="content" value="/pages/contact.jsp" />
>     </definition>
> 
> including the following action-mapping (and fitting form-bean):
> 
>     <action path="/ContactAction"
>         type="ContactAction"                                 
> name="ContactForm"
>         scope="request"
>         validate="true"
>         parameter="contact"
>         input="/Contact.do">
>          <forward name="success" path="mainLayout" />
>          <forward name="failure" path="error" />
>     </action>
> 
> we met the following problem:
> 
> when a validation-error or an exception appears, the banner-tile in 
> mainLayout should be replaced with error-banner-tile.
> in fact there is the possibility to use forward-directive on failure 
> (not on validation), but we want to remain on the same input-page 
> (contact) with just another error-banner-tile included on 
> validation-error or exception.
> 
> is there any handy possibility to solve that problem? or is it the only 
> way to create a additional error-tile-definition for every page?

I don't think there's a way to do that using static definitions in 
tiles-defs, but you could include tags in your JSP file to to pull the 
appropriate tile in, instead of doing it through tiles-defs -- in other 
words, use the <tiles:*/> tags in basicLayout.jsp to include either the 
banner-tile or error-banner-tile according to what you need for that 
request.

You'd need conditional logic to decide which tile to include. You could 
look to see if there are error messages present and switch on that, or 
use some other condition specific to your application.

L.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message