View Javadoc

1   /*
2    * $Id: LookupDispatchExampleAction.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.webapp.dispatch;
22  
23  import java.util.Map;
24  import java.util.HashMap;
25  import javax.servlet.http.HttpServletRequest;
26  import javax.servlet.http.HttpServletResponse;
27  import org.apache.struts.actions.LookupDispatchAction;
28  import org.apache.struts.action.ActionForm;
29  import org.apache.struts.action.ActionForward;
30  import org.apache.struts.action.ActionMapping;
31  import org.apache.struts.action.ActionMessage;
32  import org.apache.struts.action.ActionMessages;
33  
34  /**
35   * Example LookupDispatchAction.
36   *
37   * @version $Rev: 471754 $ $Date: 2006-11-06 08:55:09 -0600 (Mon, 06 Nov 2006) $
38   */
39  public class LookupDispatchExampleAction extends LookupDispatchAction {
40  
41      private Map keyMethodMap = new HashMap();
42      private int fooCount;
43      private int barCount;
44  
45      /**
46       * Constructor - populate the key method map.
47       */
48      public LookupDispatchExampleAction() {
49          keyMethodMap.put("button.foo.label", "doFoo");
50          keyMethodMap.put("button.bar.label", "doBar");
51      }
52  
53      /**
54       * Example "foo" method.
55       *
56       * @param mapping The ActionMapping used to select this instance
57       * @param form The optional ActionForm bean for this request
58       * @param request The servlet request we are processing
59       * @param response The servlet response we are creating
60       *
61       * @exception Exception if business logic throws an exception
62       */
63      public ActionForward doFoo(ActionMapping mapping,
64                                 ActionForm form,
65                                 HttpServletRequest request,
66                                 HttpServletResponse response)
67          throws Exception {
68  
69          fooCount++;
70  
71          ActionMessages messages = new ActionMessages();
72          messages.add("foo", new ActionMessage("count.foo.message", fooCount+""));
73          saveMessages(request, messages);
74  
75          return (mapping.findForward("success"));
76  
77      }
78  
79      /**
80       * Example "bar" method.
81       *
82       * @param mapping The ActionMapping used to select this instance
83       * @param form The optional ActionForm bean for this request
84       * @param request The servlet request we are processing
85       * @param response The servlet response we are creating
86       *
87       * @exception Exception if business logic throws an exception
88       */
89      public ActionForward doBar(ActionMapping mapping,
90                                 ActionForm form,
91                                 HttpServletRequest request,
92                                 HttpServletResponse response)
93          throws Exception {
94          barCount++;
95  
96          ActionMessages messages = new ActionMessages();
97          messages.add("bar", new ActionMessage("count.bar.message", barCount+""));
98          saveMessages(request, messages);
99  
100         return (mapping.findForward("success"));
101 
102     }
103 
104     /**
105      * Provides the mapping from resource key to method name.
106      *
107      * @return Resource key / method name map.
108      */
109     protected Map getKeyMethodMap() {
110         return keyMethodMap;
111     }
112 
113 }