org.apache.struts.action

Class ActionForm

Implemented Interfaces:
Serializable
Known Direct Subclasses:
DynaActionForm, ValidatorForm

public abstract class ActionForm
extends java.lang.Object
implements Serializable

An ActionForm is a JavaBean optionally associated with one or more ActionMappings. Such a bean will have had its properties initialized from the corresponding request parameters before the corresponding Action.execute method is called.

When the properties of this bean have been populated, but before the execute method of the Action is called, this bean's validate method will be called, which gives the bean a chance to verify that the properties submitted by the user are correct and valid. If this method finds problems, it returns an error messages object that encapsulates those problems, and the controller servlet will return control to the corresponding input form. Otherwise, the validate method returns null, indicating that everything is acceptable and the corresponding Action.execute method should be called.

This class must be subclassed in order to be instantiated. Subclasses should provide property getter and setter methods for all of the bean properties they wish to expose, plus override any of the public or protected methods for which they wish to provide modified functionality.

Because ActionForms are JavaBeans, subclasses should also implement Serializable, as required by the JavaBean specification. Some containers require that an object meet all JavaBean requirements in order to use the introspection API upon which ActionForms rely.

Version:
$Rev: 54929 $ $Date: 2004-10-16 17:38:42 +0100 (Sat, 16 Oct 2004) $

Field Summary

protected MultipartRequestHandler
multipartRequestHandler
The MultipartRequestHandler for this form, can be null.
protected ActionServlet
servlet
The servlet instance to which we are attached.

Method Summary

MultipartRequestHandler
getMultipartRequestHandler()
Return the MultipartRequestHandler for this form The reasoning behind this is to give form bean developers control over the lifecycle of their multipart requests through the use of the finish and/or rollback methods of MultipartRequestHandler.
protected ActionServlet
getServlet()
Return the servlet instance to which we are attached.
ActionServletWrapper
getServletWrapper()
Return the controller servlet instance to which we are attached.
void
reset(ActionMapping mapping, HttpServletRequest request)
Reset bean properties to their default state, as needed.
void
reset(ActionMapping mapping, ServletRequest request)
Reset all bean properties to their default state.
void
setMultipartRequestHandler(MultipartRequestHandler multipartRequestHandler)
Set the Handler provides to use in dealing with file uploads.
void
setServlet(ActionServlet servlet)
Set the servlet instance to which we are attached (if servlet is non-null), or release any allocated resources (if servlet is null).
ActionErrors
validate(ActionMapping mapping, HttpServletRequest request)
Validate the properties that have been set for this HTTP request, and return an ActionErrors object that encapsulates any validation errors that have been found.
ActionErrors
validate(ActionMapping mapping, ServletRequest request)
Validate the properties that have been set for this non-HTTP request, and return an ActionErrors object that encapsulates any validation errors that have been found.

Field Details

multipartRequestHandler

protected MultipartRequestHandler multipartRequestHandler
The MultipartRequestHandler for this form, can be null.

servlet

protected ActionServlet servlet
The servlet instance to which we are attached.

Method Details

getMultipartRequestHandler

public MultipartRequestHandler getMultipartRequestHandler()
Return the MultipartRequestHandler for this form The reasoning behind this is to give form bean developers control over the lifecycle of their multipart requests through the use of the finish and/or rollback methods of MultipartRequestHandler. This method will return null if this form's enctype is not "multipart/request-data".

getServlet

protected ActionServlet getServlet()
Return the servlet instance to which we are attached.

getServletWrapper

public ActionServletWrapper getServletWrapper()
Return the controller servlet instance to which we are attached. as an ActionServletWrapper.
Since:
Struts 1.0.1

reset

public void reset(ActionMapping mapping,
                  HttpServletRequest request)
Reset bean properties to their default state, as needed. This method is called before the properties are repopulated by the controller.

The default implementation does nothing. In practice, the only properties that need to be reset are those which represent checkboxes on a session-scoped form. Otherwise, properties can be given initial values where the field is declared.

If the form is stored in session-scope so that values can be collected over multiple requests (a "wizard"), you must be very careful of which properties, if any, are reset. As mentioned, session-scope checkboxes must be reset to false for any page where this property is set. This is because the client does not submit a checkbox value when it is clear (false). If a session-scoped checkbox is not proactively reset, it can never be set to false.

This method is not the appropriate place to initialize form value for an "update" type page (this should be done in a setup Action). You mainly need to worry about setting checkbox values to false; most of the time you can leave this method unimplemented.

Parameters:
mapping - The mapping used to select this instance
request - The servlet request we are processing

reset

public void reset(ActionMapping mapping,
                  ServletRequest request)
Reset all bean properties to their default state. This method is called before the properties are repopulated by the controller.

The default implementation attempts to forward to the HTTP version of this method.

Parameters:
mapping - The mapping used to select this instance
request - The servlet request we are processing

setMultipartRequestHandler

public void setMultipartRequestHandler(MultipartRequestHandler multipartRequestHandler)
Set the Handler provides to use in dealing with file uploads.
Parameters:
multipartRequestHandler - The Handler to use for fileuploads.

setServlet

public void setServlet(ActionServlet servlet)
Set the servlet instance to which we are attached (if servlet is non-null), or release any allocated resources (if servlet is null).
Parameters:
servlet - The new controller servlet, if any

validate

public ActionErrors validate(ActionMapping mapping,
                             HttpServletRequest request)
Validate the properties that have been set for this HTTP request, and return an ActionErrors object that encapsulates any validation errors that have been found. If no errors are found, return null or an ActionErrors object with no recorded error messages.

The default implementation performs no validation and returns null. Subclasses must override this method to provide any validation they wish to perform.

Parameters:
mapping - The mapping used to select this instance
request - The servlet request we are processing

validate

public ActionErrors validate(ActionMapping mapping,
                             ServletRequest request)
Validate the properties that have been set for this non-HTTP request, and return an ActionErrors object that encapsulates any validation errors that have been found. If no errors are found, return null or an ActionErrors object with no recorded error messages.

The default implementation attempts to forward to the HTTP version of this method.

Parameters:
mapping - The mapping used to select this instance
request - The servlet request we are processing

Copyright B) 2000-2007 - The Apache Software Foundation