View Javadoc

1   /*
2    * $Id: ELImportAttributeTag.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.strutsel.taglib.tiles;
22  
23  import org.apache.struts.tiles.taglib.ImportAttributeTag;
24  import org.apache.strutsel.taglib.utils.EvalHelper;
25  
26  import javax.servlet.jsp.JspException;
27  
28  /**
29   * Import attribute from component to requested scope. Attribute name and
30   * scope are optional. If not specified, all component attributes are imported
31   * in page scope. <p> This class is a subclass of the class
32   * <code>org.apache.struts.taglib.tiles.ImportAttributeTag</code> which
33   * provides most of the described functionality.  This subclass allows all
34   * attribute values to be specified as expressions utilizing the JavaServer
35   * Pages Standard Library expression language.
36   *
37   * @version $Rev: 471754 $
38   */
39  public class ELImportAttributeTag extends ImportAttributeTag {
40      /**
41       * Instance variable mapped to "scope" tag attribute. (Mapping set in
42       * associated BeanInfo class.)
43       */
44      private String scopeExpr;
45  
46      /**
47       * Instance variable mapped to "name" tag attribute. (Mapping set in
48       * associated BeanInfo class.)
49       */
50      private String nameExpr;
51  
52      /**
53       * Instance variable mapped to "ignore" tag attribute. (Mapping set in
54       * associated BeanInfo class.)
55       */
56      private String ignoreExpr;
57  
58      /**
59       * Getter method for "scope" tag attribute. (Mapping set in associated
60       * BeanInfo class.)
61       */
62      public String getScopeExpr() {
63          return (scopeExpr);
64      }
65  
66      /**
67       * Getter method for "name" tag attribute. (Mapping set in associated
68       * BeanInfo class.)
69       */
70      public String getNameExpr() {
71          return (nameExpr);
72      }
73  
74      /**
75       * Getter method for "ignore" tag attribute. (Mapping set in associated
76       * BeanInfo class.)
77       */
78      public String getIgnoreExpr() {
79          return (ignoreExpr);
80      }
81  
82      /**
83       * Setter method for "scope" tag attribute. (Mapping set in associated
84       * BeanInfo class.)
85       */
86      public void setScopeExpr(String scopeExpr) {
87          this.scopeExpr = scopeExpr;
88      }
89  
90      /**
91       * Setter method for "name" tag attribute. (Mapping set in associated
92       * BeanInfo class.)
93       */
94      public void setNameExpr(String nameExpr) {
95          this.nameExpr = nameExpr;
96      }
97  
98      /**
99       * Setter method for "ignore" tag attribute. (Mapping set in associated
100      * BeanInfo class.)
101      */
102     public void setIgnoreExpr(String ignoreExpr) {
103         this.ignoreExpr = ignoreExpr;
104     }
105 
106     /**
107      * Resets attribute values for tag reuse.
108      */
109     public void release() {
110         super.release();
111         setScopeExpr(null);
112         setNameExpr(null);
113         setIgnoreExpr(null);
114     }
115 
116     /**
117      * Process the start tag.
118      *
119      * @throws JspException if a JSP exception has occurred
120      */
121     public int doStartTag() throws JspException {
122         evaluateExpressions();
123 
124         return (super.doStartTag());
125     }
126 
127     /**
128      * Processes all attribute values which use the JSTL expression evaluation
129      * engine to determine their values.
130      *
131      * @throws JspException if a JSP exception has occurred
132      */
133     private void evaluateExpressions()
134         throws JspException {
135         String string = null;
136         Boolean bool = null;
137 
138         if ((string =
139                 EvalHelper.evalString("scope", getScopeExpr(), this, pageContext)) != null) {
140             setScope(string);
141         }
142 
143         if ((string =
144                 EvalHelper.evalString("name", getNameExpr(), this, pageContext)) != null) {
145             setName(string);
146         }
147 
148         if ((bool =
149                 EvalHelper.evalBoolean("ignore", getIgnoreExpr(), this,
150                     pageContext)) != null) {
151             setIgnore(bool.booleanValue());
152         }
153     }
154 }