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.view.facelets.tag.jstl.core;
20  
21  import org.apache.myfaces.view.facelets.tag.AbstractTagLibrary;
22  
23  /**
24   * NOTE: This implementation is provided for compatibility reasons and
25   * it is considered faulty. It is enabled using
26   * org.apache.myfaces.STRICT_JSF_2_FACELETS_COMPATIBILITY web config param.
27   * Don't use it if EL expression caching is enabled.
28   * 
29   * @author Jacob Hookom
30   * @version $Id$
31   */
32  public final class LegacyJstlCoreLibrary extends AbstractTagLibrary
33  {
34  
35      public final static String NAMESPACE = "http://xmlns.jcp.org/jsp/jstl/core";
36      public final static String ALIAS_NAMESPACE = "http://java.sun.com/jsp/jstl/core";
37  
38      // This namespace was used in the early stages of JSF 2.0 development, but later
39      // it was fixed to use the same syntax for jsp. But some applications still
40      // uses the old syntax and it is too hard to fix them, so in JSF 2.2 it was 
41      // decided to add this namespace as an alternative synonym.
42      public final static String ALTERNATIVE_NAMESPACE = "http://java.sun.com/jstl/core";
43  
44      public final static LegacyJstlCoreLibrary INSTANCE = new LegacyJstlCoreLibrary();
45  
46      public LegacyJstlCoreLibrary()
47      {
48          super(NAMESPACE, ALIAS_NAMESPACE);
49  
50          this.addTagHandler("if", IfHandler.class);
51  
52          this.addTagHandler("forEach", LegacyForEachHandler.class);
53  
54          this.addTagHandler("catch", CatchHandler.class);
55  
56          this.addTagHandler("choose", ChooseHandler.class);
57  
58          this.addTagHandler("when", ChooseWhenHandler.class);
59  
60          this.addTagHandler("otherwise", ChooseOtherwiseHandler.class);
61  
62          this.addTagHandler("set", LegacySetHandler.class);
63      }
64      
65      public LegacyJstlCoreLibrary(String namespace)
66      {
67          super(namespace);
68  
69          this.addTagHandler("if", IfHandler.class);
70  
71          this.addTagHandler("forEach", LegacyForEachHandler.class);
72  
73          this.addTagHandler("catch", CatchHandler.class);
74  
75          this.addTagHandler("choose", ChooseHandler.class);
76  
77          this.addTagHandler("when", ChooseWhenHandler.class);
78  
79          this.addTagHandler("otherwise", ChooseOtherwiseHandler.class);
80  
81          this.addTagHandler("set", LegacySetHandler.class);
82      }
83  }