Class ServletRedirectResult

java.lang.Object
org.apache.struts2.result.StrutsResultSupport
org.apache.struts2.result.ServletRedirectResult
All Implemented Interfaces:
Serializable, Redirectable, Result, StrutsStatics, ReflectionExceptionHandler
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:
  • Field Details

    • 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 Details

    • ServletRedirectResult

      public ServletRedirectResult()
    • ServletRedirectResult

      public ServletRedirectResult(String location)
    • ServletRedirectResult

      public ServletRedirectResult(String location, String anchor)
  • Method Details

    • 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(jakarta.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