I have been trying to get page level validation working with
sub-applications for a few days now and have been hit consistently by
the same problem.  

I first tried validating with Validator. Using validator is a known bug
with struts and a post to the this list more or less confirmed that.  As
a workaround for our release this week, I extended DynaActionForm and
overrode the validate method.  I get the same problem that was
preventing me from using validator. 

RequestProcessor is prepending the name of the sub-application to the
input when the sub-app name is already present.  Here is the output from
the logging when turned up to 99
==========
DEBUG [2002-09-17 15:40:52,026] (RequestProcessor.java:923) - 
Validation failed, returning to '/eto/editEtoRfq.jsp'

DEBUG [2002-09-17 15:40:52,027] (RequestProcessor.java:959) - 
Delegating via forward to '/eto/eto/editEtoRfq.jsp'
===========

Notice the extra "/eto" prepended to where we are trying to forward.

I don't know if this is a struts bug or if I am doing something
incorrectly.   Here is how the flow of the application.

I'm trying to validate etoRfqForm. There are two action that have access
to etoRfqForm.  One is the EditEtoRfq and the other is SaveEtoRfq. The
flow around etoRfqForm is below

1) editEtoRfq reads the data it needs to display from a session bean. 
It populates the etoRfqForm and then forwards off to the editEtoRfq.jsp.
===========
<action path="/editEtoRfq"
        type="org.scra.emall.web.eto.actions.EditEtoRfqAction"
        scope="request" 
        name="etoRfqForm"
        input="/editEtoRfq.jsp"
        validate="false">
        <forward name="success" 
                 contextRelative="true"
                 path="/eto/editEtoRfq.jsp"/>
</action>
===========


2) editEtoRfq.jsp submits to saveEtoRfq.do
================
<action path="/saveEtoRfq" 
        type="org.scra.emall.web.eto.actions.SaveEtoRfqAction"
        scope="request" 
        name="etoRfqForm"
        input="/eto/editEtoRfq.jsp"
        parameter="save"
        validate="true">
        <forward name="success" 
                 contextRelative="true" 
                 path="/eto/listEto.do"/>
</action>

================


I have tried different variations of the input parameter to
"/editEtoRfq", such as editEtoRfq.jsp, /editEtoRfq.jsp, and
/eto/editEtoRfq.jsp.  Except for the first one, which is broken all
together, they all seems to attach the sub-app prefix twice.  

This setup works fine when validation is turned off or when you do not
have any errors on the page.  I do have dynamic="true" on the etoRfqForm
declaration in my struts-config-eto.xml

Any help is greatly appreciated.

Thanks, Doug






--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to