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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to