|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | 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. In 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 |
DATA_SOURCE_KEY
The context attributes key under which our default configured data source (which must implement javax.sql.DataSource ) is stored,
if one is configured for this application. |
protected static java.util.Locale |
defaultLocale
The system default Locale. |
static java.lang.String |
ERROR_KEY
The request attributes key under which your action should store an org.apache.struts.action.ActionErrors object, if you
are using the corresponding custom tag library elements. |
static java.lang.String |
EXCEPTION_KEY
The request attributes key under which Struts custom tags might store a Throwable that caused them to report a JspException at
runtime. |
static java.lang.String |
FORM_BEANS_KEY
The context attributes key under which our org.apache.struts.action.ActionFormBeans collection
is normally stored, unless overridden when initializing our
ActionServlet. |
static java.lang.String |
FORWARDS_KEY
The context attributes key under which our org.apache.struts.action.ActionForwards collection
is normally stored, unless overridden when initializing our
ActionServlet. |
static java.lang.String |
LOCALE_KEY
The session attributes key under which the user's selected java.util.Locale is stored, if any. |
static java.lang.String |
MAPPING_KEY
The request attributes key under which our org.apache.struts.ActionMapping instance
is passed. |
static java.lang.String |
MAPPINGS_KEY
The context attributes key under which our org.apache.struts.action.ActionMappings collection
is normally stored, unless overridden when initializing our
ActionServlet. |
static java.lang.String |
MESSAGES_KEY
The context attributes key under which our application resources are normally stored, unless overridden when initializing our ActionServlet. |
static java.lang.String |
MULTIPART_KEY
The request attributes key under which our multipart class is stored. |
protected ActionServlet |
servlet
The controller servlet to which we are attached. |
static java.lang.String |
SERVLET_KEY
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 ). |
static java.lang.String |
TRANSACTION_TOKEN_KEY
The session attributes key under which our transaction token is stored, if it is used. |
Constructor Summary | |
Action()
|
Method Summary | |
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 java.util.Locale |
getLocale(javax.servlet.http.HttpServletRequest request)
Return the user's currently selected Locale. |
protected MessageResources |
getResources()
Return the message resources for this application. |
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. |
ActionForward |
perform(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). |
ActionForward |
perform(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). |
ActionForward |
perform(ActionServlet servlet,
ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Deprecated. Use the new perform() method without a servlet argument |
ActionForward |
perform(ActionServlet servlet,
ActionMapping mapping,
ActionForm form,
javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response)
Deprecated. Use the new perform() method without a servlet argument |
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 <struts:errors> tag, 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)
Convert a byte array to a String of hexadecimal digits and return it. |
Methods inherited from class java.lang.Object |
|
Field Detail |
public static final java.lang.String DATA_SOURCE_KEY
javax.sql.DataSource
) is stored,
if one is configured for this application.public static final java.lang.String 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
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
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
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 MESSAGES_KEY
public static final java.lang.String MULTIPART_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
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 perform(ActionServlet servlet, ActionMapping mapping, ActionForm form, javax.servlet.ServletRequest request, javax.servlet.ServletResponse response) throws java.io.IOException, javax.servlet.ServletException
ActionForward
instance describing where
and how control should be forwarded, or null
if the
response has already been completed.servlet
- The ActionServlet instance owning this Actionmapping
- The ActionMapping used to select this instanceactionForm
- The optional ActionForm bean for this request (if any)request
- The servlet request we are processingresponse
- The servlet response we are processingjava.io.IOException
- if an input/output error occursjavax.servlet.ServletException
- if a servlet exception occurspublic ActionForward perform(ActionMapping mapping, ActionForm form, javax.servlet.ServletRequest request, javax.servlet.ServletResponse response) throws java.io.IOException, javax.servlet.ServletException
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 instanceactionForm
- The optional ActionForm bean for this request (if any)request
- The non-HTTP request we are processingresponse
- The non-HTTP response we are creatingjava.io.IOException
- if an input/output error occursjavax.servlet.ServletException
- if a servlet exception occurspublic ActionForward perform(ActionServlet servlet, ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException
ActionForward
instance describing where
and how control should be forwarded, or null
if the
response has already been completed.servlet
- The ActionServlet instance owning this Actionmapping
- The ActionMapping used to select this instanceactionForm
- The optional ActionForm bean for this request (if any)request
- The servlet request we are processingresponse
- The servlet response we are processingjava.io.IOException
- if an input/output error occursjavax.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
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 instanceactionForm
- The optional ActionForm bean for this request (if any)request
- The HTTP request we are processingresponse
- The HTTP response we are creatingjava.io.IOException
- if an input/output error occursjavax.servlet.ServletException
- if a servlet exception occursprotected java.lang.String generateToken(javax.servlet.http.HttpServletRequest request)
request
- The request we are processingprotected java.util.Locale getLocale(javax.servlet.http.HttpServletRequest request)
request
- The request we are processingprotected MessageResources getResources()
protected boolean isCancelled(javax.servlet.http.HttpServletRequest request)
true
if the current form's cancel button was
pressed. This method will check if the cancel button generated by
CancelTag was pressed by the user in the
current request. If true, validation performed by an
ActionForm validate() method will have been
skipped by the controller servlet.request
- The servlet request we are processingCancelTag
,
ValidatingActionForm
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 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 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: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |