org.apache.struts2.result

## Class ServletRedirectResult

- java.lang.Object
- - org.apache.struts2.result.StrutsResultSupport
  - - org.apache.struts2.result.ServletRedirectResult

- All Implemented Interfaces:
    Result, ReflectionExceptionHandler, Serializable, Redirectable, StrutsStatics
  Direct Known Subclasses:
    ServletActionRedirectResult

      public class ServletRedirectResult
      extends StrutsResultSupport
      implements ReflectionExceptionHandler, Redirectable

  Calls the `sendRedirect` method to the location specified. The response is told to redirect the browser to the specified location (a new request from the client). The consequence of doing this means that the action (action instance, action errors, field errors, etc) that was just executed is lost and no longer available. This is because actions are built on a single-thread model. The only way to pass data is through the session or with web parameters (url?name=value) which can be OGNL expressions.

  This result type takes the following parameters:

  - location (default) - the location to go to after execution.
  - parse - true by default. If set to false, the location 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.
  This result follows the same rules from `StrutsResultSupport`.

  Example:

       <!--
         The redirect URL generated will be:
         /foo.jsp#FRAGMENT
       -->
       <result name="success" type="redirect">
         <param name="location">foo.jsp</param>
         <param name="parse">false</param>
         <param name="anchor">FRAGMENT</param>
       </result>

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ActionMapper` | `actionMapper`
    `protected String` | `anchor`
    `protected boolean` | `prependServletContext`
    `protected Map<String,Object>` | `requestParameters`
    `protected int` | `statusCode`
    `protected boolean` | `suppressEmptyParameters`

    - ### Fields inherited from class org.apache.struts2.result.StrutsResultSupport

      `DEFAULT_PARAM, 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, STRUTS_PORTLET_CONTEXT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ServletRedirectResult()`
    `ServletRedirectResult(String location)`
    `ServletRedirectResult(String location, String anchor)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ServletRedirectResult` | `addParameter(String key, Object value)` Adds a request parameter to be added to the redirect url
    `protected void` | `doExecute(String finalLocation, ActionInvocation invocation)` Redirects to the location specified by calling `HttpServletResponse.sendRedirect(String)`.
    `void` | `execute(ActionInvocation invocation)` Implementation of the `execute` method from the `Result` interface.
    `protected List<String>` | `getProhibitedResultParams()`
    `void` | `handle(ReflectionException ex)` Handles a reflection exception
    `protected boolean` | `isPathUrl(String url)` Checks if url is simple path or either full url
    `protected void` | `sendRedirect(javax.servlet.http.HttpServletResponse response, String finalLocation)` Sends the redirection.
    `void` | `setActionMapper(ActionMapper mapper)`
    `void` | `setAnchor(String anchor)` Set the optional anchor value.
    `void` | `setPrependServletContext(boolean prependServletContext)` Sets whether or not to prepend the servlet context path to the redirected URL.
    `void` | `setQueryStringBuilder(QueryStringBuilder queryStringBuilder)`
    `void` | `setStatusCode(int code)`
    `void` | `setSuppressEmptyParameters(boolean suppressEmptyParameters)` Sets the suppressEmptyParameters option

    - ### 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`

- - ### Field Detail

    - #### prependServletContext

          protected boolean prependServletContext

    - #### actionMapper

          protected ActionMapper actionMapper

    - #### statusCode

          protected int statusCode

    - #### suppressEmptyParameters

          protected boolean suppressEmptyParameters

    - #### requestParameters

          protected Map<String,Object> requestParameters

    - #### anchor

          protected String anchor

  - ### Constructor Detail

    - #### ServletRedirectResult

          public ServletRedirectResult()

    - #### ServletRedirectResult

          public ServletRedirectResult(String location)

    - #### ServletRedirectResult

          public ServletRedirectResult(String location,
                                       String anchor)

  - ### Method Detail

    - #### setActionMapper

          public void setActionMapper(ActionMapper mapper)

    - #### setQueryStringBuilder

          public void setQueryStringBuilder(QueryStringBuilder queryStringBuilder)

    - #### setStatusCode

          public void setStatusCode(int code)

    - #### setAnchor

          public void setAnchor(String anchor)

      Set the optional anchor value.
      Parameters:
        `anchor` - the anchor value

    - #### setPrependServletContext

          public void setPrependServletContext(boolean prependServletContext)

      Sets whether or not to prepend the servlet context path to the redirected URL.
      Parameters:
        `prependServletContext` - `true` to prepend the location with the servlet context path, `false` otherwise.

    - #### execute

          public void execute(ActionInvocation invocation)
                       throws Exception

      Description copied from class: `StrutsResultSupport`
      Implementation of the `execute` method from the `Result` interface. This will call the abstract method `StrutsResultSupport.doExecute(String, ActionInvocation)` after optionally evaluating the location as an OGNL evaluation.
      Specified by:
        `execute` in interface `Result`
      Overrides:
        `execute` in class `StrutsResultSupport`
      Parameters:
        `invocation` - the execution state of the action.
      Throws:
        `Exception` - if an error occurs while executing the result.

    - #### doExecute

          protected void doExecute(String finalLocation,
                                   ActionInvocation invocation)
                            throws Exception

      Redirects to the location specified by calling `HttpServletResponse.sendRedirect(String)`.
      Specified by:
        `doExecute` in class `StrutsResultSupport`
      Parameters:
        `finalLocation` - the location to redirect to.
        `invocation` - an encapsulation of the action execution state.
      Throws:
        `Exception` - if an error occurs when redirecting.

    - #### getProhibitedResultParams

          protected List<String> getProhibitedResultParams()

    - #### sendRedirect

          protected void sendRedirect(javax.servlet.http.HttpServletResponse response,
                                      String finalLocation)
                               throws IOException

      Sends the redirection. Can be overridden to customize how the redirect is handled (i.e. to use a different status code)
      Parameters:
        `response` - The response
        `finalLocation` - The location URI
      Throws:
        `IOException` - in case of IO errors

    - #### isPathUrl

          protected boolean isPathUrl(String url)

      Checks if url is simple path or either full url
      Parameters:
        `url` - string
      Returns:
        true if it's just a path not a full url

    - #### setSuppressEmptyParameters

          public void setSuppressEmptyParameters(boolean suppressEmptyParameters)

      Sets the suppressEmptyParameters option
      Parameters:
        `suppressEmptyParameters` - The new value for this option

    - #### addParameter

          public ServletRedirectResult addParameter(String key,
                                                    Object value)

      Adds a request parameter to be added to the redirect url
      Parameters:
        `key` - The parameter name
        `value` - The parameter value
      Returns:
        the servlet redirect result

    - #### handle

          public void handle(ReflectionException ex)

      Description copied from interface: `ReflectionExceptionHandler`
      Handles a reflection exception
      Specified by:
        `handle` in interface `ReflectionExceptionHandler`
      Parameters:
        `ex` - The reflection exception

Copyright © 2000–2023 Apache Software Foundation. All rights reserved.