Martin,

My ActionForm subclasses the struts ValidatorForm class. But it does not override the validate method. It just uses whatever validate method it inherits. I checked the source code for the version of ValidatorForm I am using (the one that came with Struts 1.2.4), and it returns an ActionErrors object.

Does the validate method need to be overridden in the ActionForm subclass? Thanks.

Dom

Martin Gainty wrote:
Dom-
This depends on the return of  your ActionForm validate method
If you can show us the code and I'll take a look at it tonite
Thanks,
Martin-
----- Original Message -----
From: "Dom Incollingo" <[EMAIL PROTECTED]>
To: "Struts Users Mailing List" <user@struts.apache.org>
Sent: Sunday, April 03, 2005 4:25 PM
Subject: Re: Form Submitted Twice



Martin,

Thanks very much for the info.

I've tried to follow this pattern, both in the servlet-mapping in the
web.xml:


<servlet-mapping> <servlet-name>pets</servlet-name> <url-pattern>/action/*</url-pattern> </servlet-mapping>

and in the action element in the struts-config:

  <action
    path="/petDetail"
    type="com.dom.struts.pets.action.PetDetailAction"
    scope="request"
    name="petDetailForm"
    validate="true"
    input="/petDetail.jsp">
    <forward name="OwnerList" path="/action/getOwnerList"/>
    <forward name="OwnerDetail" path="/action/ownerDetail"/>
    <forward name="PetList" path="/action/getPetList"/>
    <forward name="Success" path="/petDetail.jsp"/>
    <forward name="Failure" path="/petDetail.jsp"/>
    <forward name="Logoff" path="/action/logout"/>
  </action>

Evidently, something is not set up correctly, but it's not obvious to me
where the problem lies.  I'm trying to step thru debug (using Eclipse
with Tomcat) to see if I can figure out what struts is having a problem
with.

Thanks.

Dom


Martin Gainty wrote:

Dom
Apparently the action tag was not setup properly to ensure validation

before

posting to RequestProcessor
To quote James Goodwill and Rick Hightower
For the purposes of simplicity, our sample legacy Web resource will be a
servlet. Essentially, you want the servlet's doGet method to be called

only

if the ActionForm validates
e.g.
 <servlet-mapping>
       <servlet-name>legacy</servlet-name>
       <url-pattern>/legacy/roar</url-pattern>
   </servlet-mapping>

Thus, posts to /legacy/roar would cause this servlet's doPost method to

be

called. Now, to map this servlet as an action that acts as a form

handler,

you need to do this:

       <action
           path="/legacy"
           forward="/legacy/roar"
           input="/form/userForm.jsp"
           name="userForm"
           parameter="/legacy/roar"
           validate="true"
           scope="request"
           />
thus
validate attribute is set to true in the action mapping for this

servlet, so

the execute method of the ForwardAction is called ONLY if the ActionForm
(UserForm) validates (returns no ActionError objects).

Makes sense?
Martin-

----- Original Message -----
From: "Dom Incollingo" <[EMAIL PROTECTED]>
To: "Struts User" <user@struts.apache.org>
Sent: Saturday, April 02, 2005 6:34 PM
Subject: Form Submitted Twice




Hello,

I'm using Struts 1.2.4 (along with the validator framework), and I've
noticed that for my forms that do a Post, the action class is executed
twice.  I put log statements in my Action class, in the validator
classes, in the Struts ActionServlet, and in the JSP to try to figure
out what is happening.  The sequence of events is as follows:

- User presses Update button on a JSP
- doPost method invoked (ActionServlet)
- Struts validation methods invoked
- execute method (Action class) entered
- execute method (Action class) returns forward action of Success
- processing returns to the same JSP

.........................................................................

- doGet method invoked (ActionServlet)
- Struts validation methods invoked
- execute method (Action class) entered
- processing returns to the same JSP
- web page is displayed on browser

Everything prior to the doGet looks normal.  I can't understand why the
JSP submits a Get request when it should display.  The method specified
in the JSP's form (there is only one form in the JSP) is a Post, not a
Get.  The JSP does not contain any form submission via JavaScript.

I also notice that if I change the method in the JSP's form from Post to
Get, this problem goes away:  the form is submitted only once!

In a related problem, I have a JSP that does have a form with a method
of Get, but the user never clicks on a button to submit the form.
Instead, the user clicks on a link with a value like:



http://localhost:8080/pets/action/petDetail?userAction=Display&type=Pet&id=2


I expect processing to go to the Action class associated with
'petDetail'.  Processing does go there, but first a 'doGet' is processed
in the ActionServlet, even though a form was not submitted.

Has anyone seen these problems or know what is happening here?   Thanks
very much for your assistance.

Dom

---------------------------------------------------------------------
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]


-- Linux is like a teepee: no Windows, no Gates, Apache inside.

---------------------------------------------------------------------
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]


-- Linux is like a teepee: no Windows, no Gates, Apache inside.

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



Reply via email to