Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
org.apache.struts.action.Action
public class Action
extends java.lang.Object
perform
method.
Actions must be programmed in a thread-safe manner, because the
controller will share the same instance for multiple simultaneous
requests. This means you should design with the following items in mind:
Action
instance is first created, the controller
servlet will call setServlet()
with a non-null argument to
identify the controller servlet instance to which this Action is attached.
When the controller servlet is to be shut down (or restarted), the
setServlet()
method will be called with a null
argument, which can be used to clean up any allocated resources in use
by this Action.
Field Summary | |
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
static String |
|
protected static Locale |
|
protected ActionServlet |
|
private static TokenProcessor |
|
Method Summary | |
ActionForward |
|
ActionForward |
|
protected String |
|
protected DataSource |
|
protected DataSource |
|
protected Locale |
|
protected MessageResources |
|
protected MessageResources |
|
protected MessageResources |
|
ActionServlet |
|
protected boolean |
|
protected boolean |
|
protected boolean |
|
ActionForward |
|
ActionForward |
|
protected void |
|
protected void |
|
protected void |
|
protected void |
|
protected void |
|
void |
|
protected String |
|
public static final String ACTION_SERVLET_KEY
Deprecated. Use Globals.ACTION_SERVLET_KEY instead.
The context attributes key under which ourActionServlet
instance will be stored.
- Since:
- Struts 1.1
public static final String APPLICATION_KEY
Deprecated. Replaced by
Globals.MODULE_KEY
The base of the context attributes key under which ourModuleConfig
data structure will be stored. This will be suffixed with the actual module prefix (including the leading "/" character) to form the actual attributes key. For each request processed by the controller servlet, theModuleConfig
object for the module selected by the request URI currently being processed will also be exposed under this key as a request attribute.
- Since:
- Struts 1.1
public static final String DATA_SOURCE_KEY
Deprecated. Replaced by
Globals.DATA_SOURCE_KEY
The context attributes key under which our default configured data source (which must implementjavax.sql.DataSource
) is stored, if one is configured for this module.
public static final String ERROR_KEY
Deprecated. Replaced by
Globals.ERROR_KEY
The request attributes key under which your action should store anorg.apache.struts.action.ActionErrors
object, if you are using the corresponding custom tag library elements.
public static final String EXCEPTION_KEY
Deprecated. Replaced by
Globals.EXCEPTION_KEY
The request attributes key under which Struts custom tags might store aThrowable
that caused them to report a JspException at runtime. This value can be used on an error page to provide more detailed information about what really went wrong.
public static final String FORM_BEANS_KEY
Deprecated. Replaced by collection in ModuleConfig
The context attributes key under which ourorg.apache.struts.action.ActionFormBeans
collection is normally stored, unless overridden when initializing our ActionServlet.
public static final String FORWARDS_KEY
Deprecated. Replaced by collection in ModuleConfig.
The context attributes key under which ourorg.apache.struts.action.ActionForwards
collection is normally stored, unless overridden when initializing our ActionServlet.
public static final String LOCALE_KEY
Deprecated. Replaced by
Globals.LOCALE_KEY
The session attributes key under which the user's selectedjava.util.Locale
is stored, if any. If no such attribute is found, the system default locale will be used when retrieving internationalized messages. If used, this attribute is typically set during user login processing.
public static final String MAPPINGS_KEY
Deprecated. Replaced by collection in ModuleConfig
The context attributes key under which ourorg.apache.struts.action.ActionMappings
collection is normally stored, unless overridden when initializing our ActionServlet.
public static final String MAPPING_KEY
Deprecated. Replaced by
Globals.MAPPING_KEY
The request attributes key under which ourorg.apache.struts.ActionMapping
instance is passed.
public static final String MESSAGES_KEY
Deprecated. Use Globals.MESSAGES_KEY instead.
The base of the context attributes key under which our moduleMessageResources
will be stored. This will be suffixed with the actual module prefix (including the leading "/" character) to form the actual resources key. For each request processed by the controller servlet, theMessageResources
object for the module selected by the request URI currently being processed will also be exposed under this key as a request attribute.
public static final String MESSAGE_KEY
Deprecated. Replaced by
Globals.MESSAGE_KEY
The request attributes key under which your action should store anorg.apache.struts.action.ActionMessages
object, if you are using the corresponding custom tag library elements.
- Since:
- Struts 1.1
public static final String MULTIPART_KEY
Deprecated. Use Globals.MULTIPART_KEY instead.
The request attributes key under which our multipart class is stored.
public static final String PLUG_INS_KEY
Deprecated. Replaced by
Globals.PLUG_INS_KEY
The base of the context attributes key under which an array ofPlugIn
instances will be stored. This will be suffixed with the actual module prefix (including the leading "/" character) to form the actual attributes key.
- Since:
- Struts 1.1
public static final String REQUEST_PROCESSOR_KEY
Deprecated. Use Globals.REQUEST_PROCESSOR_KEY instead.
The base of the context attributes key under which ourRequestProcessor
instance will be stored. This will be suffixed with the actual module prefix (including the leading "/" character) to form the actual attributes key.
- Since:
- Struts 1.1
public static final String SERVLET_KEY
Deprecated. Use Globals.SERVLET_KEY instead.
The context attributes key under which we store the mapping defined for our controller serlet, which will be either a path-mapped pattern (/action/*
) or an extension mapped pattern (*.do
).
public static final String TRANSACTION_TOKEN_KEY
Deprecated. Use Globals.TRANSACTION_TOKEN_KEY instead.
The session attributes key under which our transaction token is stored, if it is used.
protected static Locale defaultLocale
The system default Locale.
private static TokenProcessor token
An instance of TokenProcessor to use for token functionality.
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
Process the specified HTTP request, and create the corresponding HTTP response (or forward to another web component that will create it), with provision for handling exceptions thrown by the business logic. Return anActionForward
instance describing where and how control should be forwarded, ornull
if the response has already been completed.
- Parameters:
mapping
- The ActionMapping used to select this instanceform
- The optional ActionForm bean for this request (if any)request
- The HTTP request we are processingresponse
- The HTTP response we are creating
- Since:
- Struts 1.1
public ActionForward execute(ActionMapping mapping, ActionForm form, ServletRequest request, ServletResponse response) throws Exception
Process the specified non-HTTP request, and create the corresponding non-HTTP response (or forward to another web component that will create it), with provision for handling exceptions thrown by the business logic. Return anActionForward
instance describing where and how control should be forwarded, ornull
if the response has already been completed. The default implementation attempts to forward to the HTTP version of this method.
- Parameters:
mapping
- The ActionMapping used to select this instanceform
- The optional ActionForm bean for this request (if any)request
- The non-HTTP request we are processingresponse
- The non-HTTP response we are creating
- Since:
- Struts 1.1
protected String generateToken(HttpServletRequest request)
Generate a new transaction token, to be used for enforcing a single request for a particular transaction.
- Parameters:
request
- The request we are processing
protected DataSource getDataSource(HttpServletRequest request)
Return the default data source for the current module.
- Parameters:
request
- The servlet request we are processing
- Since:
- Struts 1.1
protected DataSource getDataSource(HttpServletRequest request, String key)
Return the specified data source for the current module.
- Parameters:
request
- The servlet request we are processingkey
- The key specified in the<message-resources>
element for the requested bundle
- Since:
- Struts 1.1
protected Locale getLocale(HttpServletRequest request)
Return the user's currently selected Locale.
- Parameters:
request
- The request we are processing
protected MessageResources getResources()
Deprecated. This method can only return the resources for the default module. Use getResources(HttpServletRequest) to get the resources for the current module.
Return the message resources for the default module.
protected MessageResources getResources(HttpServletRequest request)
Return the default message resources for the current module.
- Parameters:
request
- The servlet request we are processing
- Since:
- Struts 1.1
protected MessageResources getResources(HttpServletRequest request, String key)
Return the specified message resources for the current module.
- Parameters:
request
- The servlet request we are processingkey
- The key specified in the<message-resources>
element for the requested bundle
- Since:
- Struts 1.1
public ActionServlet getServlet()
Return the controller servlet instance to which we are attached.
protected boolean isCancelled(HttpServletRequest request)
Returnstrue
if the current form's cancel button was pressed. This method will check if theGlobals.CANCEL_KEY
request attribute has been set, which normally occurs if the cancel button generated by CancelTag was pressed by the user in the current request. Iftrue
, validation performed by an ActionForm'svalidate()
method will have been skipped by the controller servlet.
- Parameters:
request
- The servlet request we are processing
- See Also:
CancelTag
protected boolean isTokenValid(HttpServletRequest request)
Returntrue
if there is a transaction token stored in the user's current session, and the value submitted as a request parameter with this action matches it. Returnsfalse
under any of the following circumstances:
- No session associated with this request
- No transaction token saved in the session
- No transaction token included as a request parameter
- The included transaction token value does not match the transaction token in the user's session
- Parameters:
request
- The servlet request we are processing
protected boolean isTokenValid(HttpServletRequest request, boolean reset)
Returntrue
if there is a transaction token stored in the user's current session, and the value submitted as a request parameter with this action matches it. Returnsfalse
- No session associated with this request
- No transaction token saved in the session
- No transaction token included as a request parameter
- The included transaction token value does not match the transaction token in the user's session
- Parameters:
request
- The servlet request we are processingreset
- Should we reset the token after checking it?
public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
Deprecated. Use the
execute()
method insteadProcess the specified HTTP request, and create the corresponding HTTP response (or forward to another web component that will create it). Return anActionForward
instance describing where and how control should be forwarded, ornull
if the response has already been completed.
- Parameters:
mapping
- The ActionMapping used to select this instanceform
- The optional ActionForm bean for this request (if any)request
- The HTTP request we are processingresponse
- The HTTP response we are creating
public ActionForward perform(ActionMapping mapping, ActionForm form, ServletRequest request, ServletResponse response) throws IOException, ServletException
Deprecated. Use the
execute()
method insteadProcess the specified non-HTTP request, and create the corresponding non-HTTP response (or forward to another web component that will create it). Return anActionForward
instance describing where and how control should be forwarded, ornull
if the response has already been completed. The default implementation attempts to forward to the HTTP version of this method.
- Parameters:
mapping
- The ActionMapping used to select this instanceform
- The optional ActionForm bean for this request (if any)request
- The non-HTTP request we are processingresponse
- The non-HTTP response we are creating
protected void resetToken(HttpServletRequest request)
Reset the saved transaction token in the user's session. This indicates that transactional token checking will not be needed on the next request that is submitted.
- Parameters:
request
- The servlet request we are processing
protected void saveErrors(HttpServletRequest request, ActionErrors errors)
Save the specified error messages keys into the appropriate request attribute for use by the <html:errors> tag, if any messages are required. Otherwise, ensure that the request attribute is not created.
- Parameters:
request
- The servlet request we are processingerrors
- Error messages object
protected void saveMessages(HttpServletRequest request, ActionMessages messages)
Save the specified messages keys into the appropriate request attribute for use by the <html:messages> tag (if messages="true" is set), if any messages are required. Otherwise, ensure that the request attribute is not created.
- Parameters:
request
- The servlet request we are processingmessages
- Messages object
- Since:
- Struts 1.1
protected void saveToken(HttpServletRequest request)
Save a new transaction token in the user's current session, creating a new session if necessary.
- Parameters:
request
- The servlet request we are processing
protected void setLocale(HttpServletRequest request, Locale locale)
Set the user's currently selected Locale.
- Parameters:
request
- The request we are processinglocale
- The user's selected Locale to be set, or null to select the server's default Locale
public void setServlet(ActionServlet servlet)
Set the controller servlet instance to which we are attached (ifservlet
is non-null), or release any allocated resources (ifservlet
is null).
- Parameters:
servlet
- The new controller servlet, if any
protected String toHex(buffer[] )
Deprecated. This method will be removed in a release after Struts 1.1.
Convert a byte array to a String of hexadecimal digits and return it.
- Parameters: