1 /*
2 * $Id: ActionController.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
22 package org.apache.struts.tiles;
23
24 import java.io.IOException;
25
26 import javax.servlet.ServletContext;
27 import javax.servlet.ServletException;
28 import javax.servlet.http.HttpServletRequest;
29 import javax.servlet.http.HttpServletResponse;
30
31 import org.apache.struts.action.Action;
32
33 /**
34 * Struts wrapper implementation of Controller. This implementation wraps an
35 * <code>Action</code> in a <code>Controller</code>.
36 */
37 public class ActionController implements Controller {
38
39 /**
40 * Struts action wrapped.
41 */
42 private Action action = null;
43
44 /**
45 * Constructor.
46 *
47 * @param action Action to be wrapped.
48 */
49 public ActionController(Action action) {
50 this.action = action;
51 }
52
53 /**
54 * Method associated to a tile and called immediately before tile is
55 * included. This implementation calls a Struts Action. No servlet is
56 * set by this method.
57 *
58 * @param tileContext Current tile context.
59 * @param request Current request.
60 * @param response Current response.
61 * @param servletContext Current servlet context.
62 */
63 public void perform(
64 ComponentContext tileContext,
65 HttpServletRequest request,
66 HttpServletResponse response,
67 ServletContext servletContext)
68 throws ServletException, IOException {
69
70 try {
71 action.execute(null, null, request, response);
72
73 } catch (Exception e) {
74 throw new ServletException(e);
75 }
76 }
77
78 /**
79 * @see org.apache.struts.tiles.Controller#execute(org.apache.struts.tiles.ComponentContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.ServletContext)
80 */
81 public void execute(
82 ComponentContext tileContext,
83 HttpServletRequest request,
84 HttpServletResponse response,
85 ServletContext servletContext)
86 throws Exception {
87
88 this.action.execute(null, null, request, response);
89
90 }
91 }