1 /* 2 * $Id: ActionForward.java 471754 2006-11-06 14:55:09Z husted $ 3 * 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 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 }