public class

ActionSupport

extends Object
implements Serializable Action IllegalArgumentAware
java.lang.Object
   ↳ webwork.action.ActionSupport
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

This is a useful base class for WebWork Action implementations. It gives you access to a set of useful functionality, including result view mapping, error handling, and i18n.

It is also possible to use this class by way of delegation instead of subclassing. This is useful in the case that your action cannot use subclassing to add functionality
See Also

Summary

[Expand]
Inherited Constants
From interface webwork.action.Action
Fields
protected String command
protected Map errorMap
protected Collection errorMessages
protected Log log
Public Constructors
ActionSupport()
Public Methods
void addError(String fieldName, String errorMessage)
This method is used to attach an error message to a particular form field.
void addErrorMessage(String anErrorMessage)
Add an error message to this action
void addIllegalArgumentException(String fieldName, IllegalArgumentException e)
String doDefault()
"default" command
String execute()
Execute will first check the request for a result exception.
String getCommandName()
Collection getErrorMessages()
Get the list of error messages for this action
Map getErrors()
Get the field specific errors associated with this action.
boolean getHasErrorMessages()
Check whether there are any error messages
boolean getHasErrors()
Check whether there are any errors associated with this action.
Locale getLocale()
Get the locale for this action.
String getText(String aTextName)
Get a text from the resource bundles associated with this action.
ResourceBundle getTexts()
Get the resource bundle associated with this action.
ResourceBundle getTexts(String aBundleName)
Get the named bundle.
TimeZone getTimezone()
Get the user's timezone for date/time formatting in text tag.
boolean invalidInput()
Check whether there are any error messages.
boolean isCommand(String aName)
Detect whether a particular command has been issued
void setCommand(String command)
Support implementation of CommandDriven interface.
void setErrorMessages(Collection errorMessages)
void setErrors(Map errorMap)
Protected Methods
String doExecute()
void doValidation()
Subclasses may override this method to provide validation of input data.
String getActionName()
This is used to get the current action's class name
String getPropertyEditorMessage(String fieldName, PropertyEditorException pe)
This method is called from addIllegalArgumentException and it should return an error message (that may be localized).
String invokeCommand()
Invokes an alternate execution path for the action.
void validate()
Do validation.
[Expand]
Inherited Methods
From class java.lang.Object
From interface webwork.action.Action
From interface webwork.action.IllegalArgumentAware

Fields

protected String command

protected Map errorMap

protected Collection errorMessages

protected Log log

Public Constructors

public ActionSupport ()

Public Methods

public void addError (String fieldName, String errorMessage)

This method is used to attach an error message to a particular form field.

Parameters
fieldName name of field
errorMessage the error message

public void addErrorMessage (String anErrorMessage)

Add an error message to this action

public void addIllegalArgumentException (String fieldName, IllegalArgumentException e)

public String doDefault ()

"default" command

Throws
Exception

public String execute ()

Execute will first check the request for a result exception. If one is found, then it will add its message as an error message and throw the ResultException. If there no exception is found, then it will invoke the "command" - invokeCommand(). If we are not invoking a command, it will call validate() and then doExecute().

Returns
  • view
Throws
Exception

public String getCommandName ()

public Collection getErrorMessages ()

Get the list of error messages for this action

Returns
  • list of error messages

public Map getErrors ()

Get the field specific errors associated with this action.

Returns
  • map with errors

public boolean getHasErrorMessages ()

Check whether there are any error messages

Returns
  • true if any error messages have been registered

public boolean getHasErrors ()

Check whether there are any errors associated with this action.

Returns
  • whether there are any errors

public Locale getLocale ()

Get the locale for this action.

Applications may customize how locale is chosen by subclassing ActionSupport and override this method.
Returns
  • the locale to use

public String getText (String aTextName)

Get a text from the resource bundles associated with this action. The resource bundles are searched, starting with the one associated with this particular action, and testing all its superclasses' bundles. It will stop once a bundle is found that contains the given text. This gives a cascading style that allow global texts to be defined for an application base class.

Parameters
aTextName name of text to be found
Returns
  • value of named text

public ResourceBundle getTexts ()

Get the resource bundle associated with this action. This will be based on the actual subclass that is used.

Returns
  • resouce bundle

public ResourceBundle getTexts (String aBundleName)

Get the named bundle.

You can override the getLocale() method to change the behaviour of how to choose locale for the bundles that are returned. Typically you would use the LocaleAware interface to get the users configured locale, or use your own method to allow the user to select the locale and store it in the session (by using the SessionAware interface).
Parameters
aBundleName bundle name
Returns
  • a resource bundle

public TimeZone getTimezone ()

Get the user's timezone for date/time formatting in text tag.

Returns
  • null if the default timezone should be used

public boolean invalidInput ()

Check whether there are any error messages. Just a nicer way of doing "getHasErrorMessages() || getHasErrors()".

Returns
  • true if any error messages have been registered

public boolean isCommand (String aName)

Detect whether a particular command has been issued

public void setCommand (String command)

Support implementation of CommandDriven interface. Let your action subclasses implement CommandDriven if they support this notion.

See Also

public void setErrorMessages (Collection errorMessages)

public void setErrors (Map errorMap)

Protected Methods

protected String doExecute ()

Throws
Exception

protected void doValidation ()

Subclasses may override this method to provide validation of input data. The execute() method should call validate() in the beginning of its code (which will delegate to this method), so as to check input data before doing the actual processing.

If any application errors arise these should be registered by calling addErrorMessage or addError .

If the validation is dependent on whether a command has been issued, and what that command is, then the isCommand() method should be used.

protected String getActionName ()

This is used to get the current action's class name

protected String getPropertyEditorMessage (String fieldName, PropertyEditorException pe)

This method is called from addIllegalArgumentException and it should return an error message (that may be localized). The implementation here does this by calling the getText method but you may override it with your own implementation. The default messages are stored in the ActionSupport.properties file

protected String invokeCommand ()

Invokes an alternate execution path for the action. The name of the action is derived by prepending a "do" and capitalizing the first letter of the action.

Throws
Exception

protected void validate ()

Do validation. This method is called implicitly before executing doExecute(), but must be called explicitly from within command implementation methods. The actual validation should be done by overriding the doValidation() method. If any errors have been registered by doValidation() this method will throw ResultException() which should simply be passed through.