View Javadoc

1   /*
2    * $Id: PerformInclude.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.chain.commands.servlet;
22  
23  import org.apache.struts.chain.commands.AbstractPerformInclude;
24  import org.apache.struts.chain.contexts.ActionContext;
25  import org.apache.struts.chain.contexts.ServletActionContext;
26  import org.apache.struts.util.RequestUtils;
27  
28  import javax.servlet.RequestDispatcher;
29  import javax.servlet.http.HttpServletRequest;
30  
31  /**
32   * <p>Perform forwarding or redirection based on the specified include uri (if
33   * any).</p>
34   *
35   * @version $Rev: 471754 $ $Date: 2005-11-09 00:11:45 -0500 (Wed, 09 Nov 2005)
36   *          $
37   */
38  public class PerformInclude extends AbstractPerformInclude {
39      // ------------------------------------------------------- Protected Methods
40  
41      /**
42       * <p>Perform the appropriate processing on the specified include
43       * uri.</p>
44       *
45       * @param context The context for this request
46       * @param uri     The uri to be included
47       */
48      protected void perform(ActionContext context, String uri)
49          throws Exception {
50          ServletActionContext swcontext = (ServletActionContext) context;
51  
52          HttpServletRequest request = swcontext.getRequest();
53  
54          RequestDispatcher rd = swcontext.getContext().getRequestDispatcher(uri);
55  
56          rd.forward(request, swcontext.getResponse());
57      }
58  
59      protected String includePath(ActionContext actionContext, String include) {
60          ServletActionContext swcontext = (ServletActionContext) actionContext;
61          String actionIdPath = RequestUtils.actionIdURL(include, swcontext.getModuleConfig(), swcontext.getActionServlet());
62          if (actionIdPath != null) {
63              return super.includePath(actionContext, actionIdPath);
64          } else {
65              return super.includePath(actionContext, include);
66          }
67  
68      }
69  }