View Javadoc

1   /*
2    * $Id: AbstractBacking.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  
23  package org.apache.struts.webapp.example;
24  
25  
26  import java.io.IOException;
27  import javax.faces.FacesException;
28  import javax.faces.context.FacesContext;
29  
30  
31  /**
32   * <p>Abstract base class for backing beans.</p>
33   */
34  
35  abstract class AbstractBacking {
36  
37  
38      // ------------------------------------------------------- Protected Methods
39  
40  
41      /**
42       * <p>Return the context relative path for the specified action.</p>
43       *
44       * @param context <code>FacesContext</code> for the current request
45       * @param action Name of the requested action
46       */
47      protected StringBuffer action(FacesContext context, String action) {
48  
49          // FIXME - assumes extension mapping for Struts
50          StringBuffer sb = new StringBuffer(action);
51          sb.append(".do");
52          return (sb);
53  
54      }
55  
56  
57      /**
58       * <p>Forward to the specified URL and mark this response as having
59       * been completed.</p>
60       *
61       * @param context <code>FacesContext</code> for the current request
62       * @param url Context-relative URL to forward to
63       *
64       * @exception FacesException if any error occurs
65       */
66      protected void forward(FacesContext context, String url) {
67  
68          try {
69              context.getExternalContext().dispatch(url);
70          } catch (IOException e) {
71              throw new FacesException(e);
72          } finally {
73              context.responseComplete();
74          }
75  
76      }
77  
78  
79      /**
80       * <p>Return the context relative base URL for the "logoff"
81       * action.</p>
82       *
83       * @param context <code>FacesContext</code> for the current request
84       */
85      protected StringBuffer logoff(FacesContext context) {
86  
87          return (action(context, "/logoff"));
88  
89      }
90  
91  
92      /**
93       * <p>Return the context relative base URL for the "logon"
94       * action.</p>
95       *
96       * @param context <code>FacesContext</code> for the current request
97       */
98      protected StringBuffer logon(FacesContext context) {
99  
100         return (action(context, "/logon"));
101 
102     }
103 
104 
105     /**
106      * <p>Return the context relative base URL for the "edit registration"
107      * action.</p>
108      *
109      * @param context <code>FacesContext</code> for the current request
110      */
111     protected StringBuffer registration(FacesContext context) {
112 
113         return (action(context, "/editRegistration"));
114 
115     }
116 
117 
118     /**
119      * <p>Return the context relative base URL for the "edit subscriptions"
120      * action.</p>
121      *
122      * @param context <code>FacesContext</code> for the current request
123      */
124     protected StringBuffer subscription(FacesContext context) {
125 
126         return (action(context, "/editSubscription"));
127 
128     }
129 
130 
131 }