|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.struts.action.Action
An Action is an adapter between the contents of an incoming
HTTP request and the corresponding business logic that should be executed to
process this request. The controller (ActionServlet) will select an
appropriate Action for each request, create an instance (if necessary),
and call the 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:
When an 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 java.lang.String |
ACTION_SERVLET_KEY
Deprecated. Use Globals.ACTION_SERVLET_KEY instead. |
static java.lang.String |
APPLICATION_KEY
Deprecated. Replaced by Globals.MODULE_KEY |
static java.lang.String |
DATA_SOURCE_KEY
Deprecated. Replaced by Globals.DATA_SOURCE_KEY |
protected static java.util.Locale |
defaultLocale
The system default Locale. |
static java.lang.String |
ERROR_KEY
Deprecated. Replaced by Globals.ERROR_KEY |
static java.lang.String |
EXCEPTION_KEY
Deprecated. Replaced by Globals.EXCEPTION_KEY |
static java.lang.String |
FORM_BEANS_KEY
Deprecated. Replaced by collection in ModuleConfig |
static java.lang.String |
FORWARDS_KEY
Deprecated. Replaced by collection in ModuleConfig. |
static java.lang.String |
LOCALE_KEY
Deprecated. Replaced by Globals.LOCALE_KEY |
static java.lang.String |
MAPPING_KEY
Deprecated. Replaced by Globals.MAPPING_KEY |
static java.lang.String |
MAPPINGS_KEY
Deprecated. Replaced by collection in ModuleConfig |
static java.lang.String |
MESSAGE_KEY
Deprecated. Replaced by Globals.MESSAGE_KEY |
static java.lang.String |
MESSAGES_KEY
Deprecated. Use Globals.MESSAGES_KEY instead. |
static java.lang.String |
MULTIPART_KEY
Deprecated. Use Globals.MULTIPART_KEY instead. |
static java.lang.String |
PLUG_INS_KEY
Deprecated. Replaced by Globals.PLUG_INS_KEY |
static java.lang.String |
REQUEST_PROCESSOR_KEY
Deprecated. Use Globals.REQUEST_PROCESSOR_KEY instead. |
protected ActionServlet |
servlet
The controller servlet to which we are attached. |
static java.lang.String |
SERVLET_KEY
Deprecated. Use Globals.SERVLET_KEY instead. |
private static TokenProcessor |
token
An instance of TokenProcessor to use for token functionality. |
static java.lang.String |
TRANSACTION_TOKEN_KEY
Deprecated. Use Globals.TRANSACTION_TOKEN_KEY instead. |
Constructor Summary | |
Action()
|
Method Summary | |
ActionForward |
execute(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
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. |
ActionForward |
execute(ActionMapping mapping,
ActionForm form,
javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response)
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. |
protected java.lang.String |
generateToken(javax.servlet.http.HttpServletRequest request)
Generate a new transaction token, to be used for enforcing a single request for a particular transaction. |
protected javax.sql.DataSource |
getDataSource(javax.servlet.http.HttpServletRequest request)
Return the default data source for the current module. |
protected javax.sql.DataSource |
getDataSource(javax.servlet.http.HttpServletRequest request,
java.lang.String key)
Return the specified data source for the current module. |
protected java.util.Locale |
getLocale(javax.servlet.http.HttpServletRequest request)
Return the user's currently selected Locale. |
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. |
protected MessageResources |
getResources(javax.servlet.http.HttpServletRequest request)
Return the default message resources for the current module. |
protected MessageResources |
getResources(javax.servlet.http.HttpServletRequest request,
java.lang.String key)
Return the specified message resources for the current module. |
ActionServlet |
getServlet()
Return the controller servlet instance to which we are attached. |
protected boolean |
isCancelled(javax.servlet.http.HttpServletRequest request)
Returns true if the current form's cancel button was
pressed. |
protected boolean |
isTokenValid(javax.servlet.http.HttpServletRequest request)
Return true 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. |
protected boolean |
isTokenValid(javax.servlet.http.HttpServletRequest request,
boolean reset)
Return true 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. |
ActionForward |
perform(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Deprecated. Use the execute() method instead |
ActionForward |
perform(ActionMapping mapping,
ActionForm form,
javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response)
Deprecated. Use the execute() method instead |
protected void |
resetToken(javax.servlet.http.HttpServletRequest request)
Reset the saved transaction token in the user's session. |
protected void |
saveErrors(javax.servlet.http.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. |
protected void |
saveMessages(javax.servlet.http.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. |
protected void |
saveToken(javax.servlet.http.HttpServletRequest request)
Save a new transaction token in the user's current session, creating a new session if necessary. |
protected void |
setLocale(javax.servlet.http.HttpServletRequest request,
java.util.Locale locale)
Set the user's currently selected Locale. |
void |
setServlet(ActionServlet servlet)
Set the controller servlet instance to which we are attached (if servlet is non-null), or release any allocated resources
(if servlet is null). |
protected java.lang.String |
toHex(byte[] buffer)
Deprecated. This method will be removed in a release after Struts 1.1. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final java.lang.String ACTION_SERVLET_KEY
ActionServlet
instance will be stored.
public static final java.lang.String APPLICATION_KEY
Globals.MODULE_KEY
The base of the context attributes key under which our
ModuleConfig
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, the
ModuleConfig
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 java.lang.String DATA_SOURCE_KEY
Globals.DATA_SOURCE_KEY
javax.sql.DataSource
) is stored,
if one is configured for this module.
public static final java.lang.String ERROR_KEY
Globals.ERROR_KEY
org.apache.struts.action.ActionErrors
object, if you
are using the corresponding custom tag library elements.
public static final java.lang.String EXCEPTION_KEY
Globals.EXCEPTION_KEY
Throwable
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 java.lang.String FORM_BEANS_KEY
org.apache.struts.action.ActionFormBeans
collection
is normally stored, unless overridden when initializing our
ActionServlet.
public static final java.lang.String FORWARDS_KEY
org.apache.struts.action.ActionForwards
collection
is normally stored, unless overridden when initializing our
ActionServlet.
public static final java.lang.String LOCALE_KEY
Globals.LOCALE_KEY
java.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 java.lang.String MAPPING_KEY
Globals.MAPPING_KEY
org.apache.struts.ActionMapping
instance
is passed.
public static final java.lang.String MAPPINGS_KEY
org.apache.struts.action.ActionMappings
collection
is normally stored, unless overridden when initializing our
ActionServlet.
public static final java.lang.String MESSAGE_KEY
Globals.MESSAGE_KEY
org.apache.struts.action.ActionMessages
object, if you
are using the corresponding custom tag library elements.
public static final java.lang.String MESSAGES_KEY
The base of the context attributes key under which our
module MessageResources
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, the
MessageResources
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 java.lang.String MULTIPART_KEY
public static final java.lang.String PLUG_INS_KEY
Globals.PLUG_INS_KEY
The base of the context attributes key under which an array of
PlugIn
instances will be stored. This
will be suffixed with the actual module prefix (including the
leading "/" character) to form the actual attributes key.
public static final java.lang.String REQUEST_PROCESSOR_KEY
The base of the context attributes key under which our
RequestProcessor
instance will be stored. This
will be suffixed with the actual module prefix (including the
leading "/" character) to form the actual attributes key.
public static final java.lang.String SERVLET_KEY
/action/*
) or an extension mapped pattern
(*.do
).
public static final java.lang.String TRANSACTION_TOKEN_KEY
private static TokenProcessor token
protected static java.util.Locale defaultLocale
protected ActionServlet servlet
Constructor Detail |
public Action()
Method Detail |
public ActionServlet getServlet()
public void setServlet(ActionServlet servlet)
servlet
is non-null), or release any allocated resources
(if servlet
is null).
servlet
- The new controller servlet, if anypublic ActionForward execute(ActionMapping mapping, ActionForm form, javax.servlet.ServletRequest request, javax.servlet.ServletResponse response) throws java.lang.Exception
ActionForward
instance describing where and how
control should be forwarded, or null
if the response has
already been completed.
The default implementation attempts to forward to the HTTP version of this method.
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
java.lang.Exception
- if the application business logic throws
an exceptionpublic ActionForward execute(ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.lang.Exception
ActionForward
instance describing where and how
control should be forwarded, or null
if the response
has already been completed.
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
java.lang.Exception
- if the application business logic throws
an exceptionpublic ActionForward perform(ActionMapping mapping, ActionForm form, javax.servlet.ServletRequest request, javax.servlet.ServletResponse response) throws java.io.IOException, javax.servlet.ServletException
execute()
method instead
ActionForward
instance describing where
and how control should be forwarded, or null
if the
response has already been completed.
The default implementation attempts to forward to the HTTP version of this method.
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
java.io.IOException
- if an input/output error occurs
javax.servlet.ServletException
- if a servlet exception occurspublic ActionForward perform(ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException
execute()
method instead
ActionForward
instance describing where and how
control should be forwarded, or null
if the response has
already been completed.
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
java.io.IOException
- if an input/output error occurs
javax.servlet.ServletException
- if a servlet exception occursprotected java.lang.String generateToken(javax.servlet.http.HttpServletRequest request)
request
- The request we are processingprotected javax.sql.DataSource getDataSource(javax.servlet.http.HttpServletRequest request)
request
- The servlet request we are processingprotected javax.sql.DataSource getDataSource(javax.servlet.http.HttpServletRequest request, java.lang.String key)
request
- The servlet request we are processingkey
- The key specified in the
<message-resources>
element for the
requested bundleprotected java.util.Locale getLocale(javax.servlet.http.HttpServletRequest request)
request
- The request we are processingprotected MessageResources getResources()
protected MessageResources getResources(javax.servlet.http.HttpServletRequest request)
request
- The servlet request we are processingprotected MessageResources getResources(javax.servlet.http.HttpServletRequest request, java.lang.String key)
request
- The servlet request we are processingkey
- The key specified in the
<message-resources>
element for the
requested bundleprotected boolean isCancelled(javax.servlet.http.HttpServletRequest request)
Returns true
if the current form's cancel button was
pressed. This method will check if the Globals.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. If true
, validation performed
by an ActionForm's validate()
method
will have been skipped by the controller servlet.
request
- The servlet request we are processingCancelTag
protected boolean isTokenValid(javax.servlet.http.HttpServletRequest request)
true
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. Returns false
under any of the following circumstances:
request
- The servlet request we are processingprotected boolean isTokenValid(javax.servlet.http.HttpServletRequest request, boolean reset)
true
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. Returns false
request
- The servlet request we are processingreset
- Should we reset the token after checking it?protected void resetToken(javax.servlet.http.HttpServletRequest request)
request
- The servlet request we are processingprotected void saveErrors(javax.servlet.http.HttpServletRequest request, ActionErrors errors)
request
- The servlet request we are processingerrors
- Error messages objectprotected void saveMessages(javax.servlet.http.HttpServletRequest request, ActionMessages messages)
request
- The servlet request we are processingmessages
- Messages objectprotected void saveToken(javax.servlet.http.HttpServletRequest request)
request
- The servlet request we are processingprotected void setLocale(javax.servlet.http.HttpServletRequest request, java.util.Locale locale)
request
- The request we are processinglocale
- The user's selected Locale to be set, or null
to select the server's default Localeprotected java.lang.String toHex(byte[] buffer)
buffer
- The byte array to be converted
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |