View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  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,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.myfaces.custom.loadbundle;
20  
21  import javax.faces.component.UIComponent;
22  import javax.faces.webapp.UIComponentTag;
23  import javax.servlet.jsp.JspException;
24  
25  import org.apache.commons.logging.Log;
26  import org.apache.commons.logging.LogFactory;
27  
28  /**
29   * A load-bundle alternative which allows to use load-bundle
30   * even on AJAX-enabled pages.
31   * <p/>
32   * A tag that allows to load bundles not only on rendering, but whenever the
33   * page author needs it. By default, it loads it on every lifecycle phase
34   * except restore-state and save-state.
35   *
36   * The core-load-bundle only loads its message-bundle
37   * on rendering - this load-bundle does it on every life-cycle,
38   * and optionally whenever the method loadBundle is called.
39  
40   * @author Martin Marinschek
41   */
42  public abstract class AbstractLoadBundleTag extends UIComponentTag {
43      
44      private Log log = LogFactory.getLog(AbstractLoadBundleTag.class);
45  
46      public int doStartTag() throws JspException
47      {
48          int retVal= super.doStartTag();
49  
50          UIComponent comp = getComponentInstance();
51  
52          if(comp instanceof LoadBundle)
53          {
54              ((LoadBundle) comp).loadBundle();
55          }
56          else
57          {
58              log.warn("associated component is no loadbundle.");
59          }
60  
61          return retVal;
62      }
63  }