Fork me on GitHub
Edit on GitHub << back to Core Developer Guide

Redirect Result

Calls the {@link HttpServletResponse#sendRedirect(String) 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.

Parameters

This result follows the same rules from StrutsResultSupport.

Examples

<!--
  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>
<package name="passingRequestParameters" extends="struts-default" namespace="/passingRequestParameters">
   <-- Pass parameters (reportType, width and height) -->
   <!--
   The redirect url generated will be - the namespace of current acction will be appended as location doesn't start with "/":
   /passingRequestParameters/generateReport.jsp?reportType=pie&width=100&height=100#summary
   -->
   <action name="gatherReportInfo" class="...">
      <result name="showReportResult" type="redirect">
         <param name="location">generateReport.jsp</param>
         <param name="reportType">pie</param>
         <param name="width">100</param>
         <param name="height">100</param>
         <param name="parse">false</param>
         <param name="anchor">summary</param>
      </result>
   </action>
</package>