Package org.apache.struts2.result
Class ServletActionRedirectResult
java.lang.Object
org.apache.struts2.result.StrutsResultSupport
org.apache.struts2.result.ServletRedirectResult
org.apache.struts2.result.ServletActionRedirectResult
- All Implemented Interfaces:
Serializable
,Redirectable
,Result
,StrutsStatics
,ReflectionExceptionHandler
public class ServletActionRedirectResult
extends ServletRedirectResult
implements ReflectionExceptionHandler, Redirectable
This result uses the ActionMapper
provided by the
ActionMapperFactory to redirect the browser to a URL that invokes the
specified action and (optional) namespace. This is better than the
ServletRedirectResult
because it does not require you to encode the
URL patterns processed by the ActionMapper
in to your struts.xml
configuration files. This means you can change your URL patterns at any point
and your application will still work. It is strongly recommended that if you
are redirecting to another action, you use this result rather than the
standard redirect result.
See examples below for an example of how request parameters could be passed in.
This result type takes the following parameters:
- actionName (default) - The name of the action that will be redirected to.
- namespace - Used to determine which namespace the action is in that we're redirecting to. If namespace is null, the default will be the current namespace.
- suppressEmptyParameters - Optional boolean (defaults to false) that can prevent parameters with no values from being included in the redirect URL.
- parse - Boolean, true by default. If set to false, the actionName param will not be parsed for Ognl expressions.
- anchor - Optional. Also known as "fragment" or colloquially as "hash". You can specify an anchor for a result.
Example:
<package name="public" extends="struts-default"> <action name="login" class="..."> <!-- Redirect to another namespace --> <result type="redirectAction"> <param name="actionName">dashboard</param> <param name="namespace">/secure</param> </result> </action> </package> <package name="secure" extends="struts-default" namespace="/secure"> <-- Redirect to an action in the same namespace --> <action name="dashboard" class="..."> <result>dashboard.jsp</result> <result name="error" type="redirectAction">error</result> </action> <action name="error" class="..."> <result>error.jsp</result> </action> </package> <package name="passingRequestParameters" extends="struts-default" namespace="/passingRequestParameters"> <!-- Pass parameters (reportType, width and height) --> <!-- The redirectAction url generated will be : /genReport/generateReport.action?reportType=pie&width=100&height=100#summary --> <action name="gatherReportInfo" class="..."> <result name="showReportResult" type="redirectAction"> <param name="actionName">generateReport</param> <param name="namespace">/genReport</param> <param name="reportType">pie</param> <param name="width">100</param> <param name="height">100</param> <param name="empty"></param> <param name="suppressEmptyParameters">true</param> <param name="anchor">summary</param> </result> </action> </package>
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected String
static final String
protected String
protected String
Fields inherited from class org.apache.struts2.result.ServletRedirectResult
actionMapper, anchor, prependServletContext, requestParameters, statusCode, suppressEmptyParameters
Fields inherited from class org.apache.struts2.result.StrutsResultSupport
DEFAULT_URL_ENCODING, parseLocation
Fields inherited from interface org.apache.struts2.StrutsStatics
ACTION_MAPPING, HTTP_REQUEST, HTTP_RESPONSE, PAGE_CONTEXT, SERVLET_CONTEXT, SERVLET_DISPATCHER, STRUTS_ACTION_TAG_INVOCATION
-
Constructor Summary
ConstructorsConstructorDescriptionServletActionRedirectResult
(String actionName) ServletActionRedirectResult
(String actionName, String method) ServletActionRedirectResult
(String namespace, String actionName, String method) ServletActionRedirectResult
(String namespace, String actionName, String method, String anchor) -
Method Summary
Modifier and TypeMethodDescriptionvoid
execute
(ActionInvocation invocation) Implementation of the execute method from the Result interface.void
setActionName
(String actionName) Sets the action namevoid
Sets the methodvoid
setNamespace
(String namespace) Sets the namespaceMethods inherited from class org.apache.struts2.result.ServletRedirectResult
addParameter, doExecute, handle, isPathUrl, sendRedirect, setActionMapper, setAnchor, setPrependServletContext, setQueryStringBuilder, setStatusCode, setSuppressEmptyParameters
Methods inherited from class org.apache.struts2.result.StrutsResultSupport
conditionalParse, conditionalParseCollection, getLastFinalLocation, getLocation, setEncode, setLocation, setParse
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.struts2.util.reflection.ReflectionExceptionHandler
handle
-
Field Details
-
DEFAULT_PARAM
- See Also:
-
actionName
-
namespace
-
method
-
-
Constructor Details
-
ServletActionRedirectResult
public ServletActionRedirectResult() -
ServletActionRedirectResult
-
ServletActionRedirectResult
-
ServletActionRedirectResult
-
ServletActionRedirectResult
-
-
Method Details
-
execute
Description copied from class:StrutsResultSupport
Implementation of the execute method from the Result interface. This will call the abstract methodStrutsResultSupport.doExecute(String, ActionInvocation)
after optionally evaluating the location as an OGNL evaluation.- Specified by:
execute
in interfaceResult
- Overrides:
execute
in classServletRedirectResult
- Parameters:
invocation
- the execution state of the action.- Throws:
Exception
- if an error occurs while executing the result.- See Also:
-
setActionName
Sets the action name- Parameters:
actionName
- The name
-
setNamespace
Sets the namespace- Parameters:
namespace
- The namespace
-
setMethod
Sets the method- Parameters:
method
- The method
-
getProhibitedResultParams
- Overrides:
getProhibitedResultParams
in classServletRedirectResult
-