1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.struts.action;
22
23 import org.apache.struts.config.ForwardConfig;
24
25 /**
26 * <p>An <strong>ActionForward</strong> represents a destination to which the
27 * controller, RequestProcessor, might be directed to perform a
28 * RequestDispatcher.forward or HttpServletResponse.sendRedirect to, as a
29 * result of processing activities of an Action class. Instances of this class
30 * may be created dynamically as necessary, or configured in association with
31 * an ActionMapping instance for named lookup of potentially multiple
32 * destinations for a particular mapping instance.</p>
33 *
34 * <p>An ActionForward has the following minimal set of properties. Additional
35 * properties can be provided as needed by subclassses.</p>
36 *
37 * <ul>
38 *
39 * <li><strong>contextRelative</strong> - Should the path value be interpreted
40 * as context-relative (instead of module-relative, if it starts with a '/'
41 * character? [false]</li>
42 *
43 * <li><strong>name</strong> - Logical name by which this instance may be
44 * looked up in relationship to a particular ActionMapping. </li>
45 *
46 * <li><strong>path</strong> - Module-relative or context-relative URI to
47 * which control should be forwarded, or an absolute or relative URI to which
48 * control should be redirected.</li>
49 *
50 * <li><strong>redirect</strong> - Set to true if the controller servlet
51 * should call HttpServletResponse.sendRedirect() on the associated path;
52 * otherwise false. [false]</li>
53 *
54 * </ul>
55 *
56 * <p>Since Struts 1.1 this class extends ForwardConfig and inherits the
57 * contextRelative property.
58 *
59 * <p><strong>NOTE</strong> - This class would have been deprecated and
60 * replaced by org.apache.struts.config.ForwardConfig except for the fact that
61 * it is part of the public API that existing applications are using.</p>
62 *
63 * @version $Rev: 471754 $ $Date: 2005-08-14 17:24:39 -0400 (Sun, 14 Aug 2005)
64 * $
65 */
66 public class ActionForward extends ForwardConfig {
67 /**
68 * <p>Construct a new instance with default values.</p>
69 */
70 public ActionForward() {
71 this(null, false);
72 }
73
74 /**
75 * <p>Construct a new instance with the specified path.</p>
76 *
77 * @param path Path for this instance
78 */
79 public ActionForward(String path) {
80 this(path, false);
81 }
82
83 /**
84 * <p>Construct a new instance with the specified <code>path</code> and
85 * <code>redirect</code> flag.</p>
86 *
87 * @param path Path for this instance
88 * @param redirect Redirect flag for this instance
89 */
90 public ActionForward(String path, boolean redirect) {
91 super();
92 setName(null);
93 setPath(path);
94 setRedirect(redirect);
95 }
96
97 /**
98 * <p>Construct a new instance with the specified <code>name</code>,
99 * <code>path</code> and <code>redirect</code> flag.</p>
100 *
101 * @param name Name of this instance
102 * @param path Path for this instance
103 * @param redirect Redirect flag for this instance
104 */
105 public ActionForward(String name, String path, boolean redirect) {
106 super();
107 setName(name);
108 setPath(path);
109 setRedirect(redirect);
110 }
111
112 /**
113 * <p>Construct a new instance with the specified values.</p>
114 *
115 * @param name Name of this forward
116 * @param path Path to which control should be forwarded or
117 * redirected
118 * @param redirect Should we do a redirect?
119 * @param module Module prefix, if any
120 */
121 public ActionForward(String name, String path, boolean redirect,
122 String module) {
123 super();
124 setName(name);
125 setPath(path);
126 setRedirect(redirect);
127 setModule(module);
128 }
129
130 /**
131 * <p>Construct a new instance based on the values of another
132 * ActionForward.</p>
133 *
134 * @param copyMe An ActionForward instance to copy
135 * @since Struts 1.2.1
136 */
137 public ActionForward(ActionForward copyMe) {
138 this(copyMe.getName(), copyMe.getPath(), copyMe.getRedirect(),
139 copyMe.getModule());
140 }
141 }