View Javadoc

1   /*
2    * $Id: AbstractPerformInclude.java 421119 2006-07-12 04:49:11Z wsmoak $
3    *
4    * Copyright 2003-2005 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.struts.chain.commands;
19  
20  import org.apache.struts.chain.contexts.ActionContext;
21  import org.apache.struts.config.ModuleConfig;
22  
23  /***
24   * <p>Perform forwarding or redirection based on the specified
25   * <code>String</code> (if any).</p>
26   *
27   * @version $Rev: 421119 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005)
28   *          $
29   */
30  public abstract class AbstractPerformInclude extends ActionCommandBase {
31      // ---------------------------------------------------------- Public Methods
32  
33      /***
34       * <p>Perform an include based on the specified include uri (if any).</p>
35       *
36       * @param actionCtx The <code>Context</code> for the current request
37       * @return <code>true</code> so that processing completes
38       * @throws Exception if thrown by the <code>Action</code>
39       */
40      public boolean execute(ActionContext actionCtx)
41          throws Exception {
42          ModuleConfig moduleConfig = actionCtx.getModuleConfig();
43  
44          // Is there an include to be performed?
45          String include = actionCtx.getInclude();
46  
47          if (include == null) {
48              return (false);
49          }
50  
51          // Determine the currect uri
52          String uri = moduleConfig.getPrefix() + include;
53  
54          // Perform the appropriate processing on this include uri
55          perform(actionCtx, uri);
56  
57          return (true);
58      }
59  
60      // ------------------------------------------------------- Protected Methods
61  
62      /***
63       * <p>Perform the appropriate processing on the specified include
64       * uri.</p>
65       *
66       * @param context The context for this request
67       * @param include The forward to be performed
68       * @throws Exception if thrown by the <code>Action</code>
69       */
70      protected abstract void perform(ActionContext context, String include)
71          throws Exception;
72  }