View Javadoc
1   /*
2    * $Id$
3    *
4    * Copyright 2007 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.servlet;
19  
20  import jakarta.servlet.http.HttpServletRequest;
21  
22  import org.apache.struts.Globals;
23  import org.apache.struts.chain.commands.ActionCommandBase;
24  import org.apache.struts.chain.contexts.ActionContext;
25  import org.apache.struts.chain.contexts.ServletActionContext;
26  
27  /**
28   * <p>Performs post-processing functions in command chain</p>
29   *
30   * @version $Rev$ $Date$
31   * @since Struts 1.4
32   */
33  public class ActionPostProcess extends ActionCommandBase {
34  
35      /**
36       * <p>Performs additional functions after an Action or Command
37       * has been called.</p>
38       *
39       * @param context The <code>Context</code> for the current request
40       * @return <code>false</code> so that processing continues
41       * @throws Exception on any error
42       */
43      @Override
44      protected boolean execute_(ActionContext context) throws Exception {
45  
46          ServletActionContext saContext = (ServletActionContext) context;
47          HttpServletRequest request = saContext.getRequest();
48  
49          // Set flag in request object, notifying chained actions that
50          // this request was already processed.
51          request.setAttribute(Globals.CHAIN_KEY, Boolean.TRUE);
52  
53          // Continue chain processing
54          return CONTINUE_PROCESSING;
55      }
56  }