View Javadoc

    1   /*
    2    * $Id: ELInitDefinitionsTag.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.InitDefinitionsTag;
    24  import org.apache.strutsel.taglib.utils.EvalHelper;
    25
    26  import javax.servlet.jsp.JspException;
    27
    28  /**
    29   * Init definitions factory. <p> This class is a subclass of the class
    30   * <code>org.apache.struts.taglib.tiles.InitDefinitionsTag</code> which
    31   * provides most of the described functionality.  This subclass allows all
    32   * attribute values to be specified as expressions utilizing the JavaServer
    33   * Pages Standard Library expression language.
    34   *
    35   * @version $Rev: 471754 $
    36   */
    37  public class ELInitDefinitionsTag extends InitDefinitionsTag {
    38      /**
    39       * Instance variable mapped to "file" tag attribute. (Mapping set in
    40       * associated BeanInfo class.)
    41       */
    42      private String fileExpr;
    43
    44      /**
    45       * Instance variable mapped to "classname" tag attribute. (Mapping set in
    46       * associated BeanInfo class.)
    47       */
    48      private String classnameExpr;
    49
    50      /**
    51       * Getter method for "file" tag attribute. (Mapping set in associated
    52       * BeanInfo class.)
    53       */
    54      public String getFileExpr() {
    55          return (fileExpr);
    56      }
    57
    58      /**
    59       * Getter method for "classname" tag attribute. (Mapping set in associated
    60       * BeanInfo class.)
    61       */
    62      public String getClassnameExpr() {
    63          return (classnameExpr);
    64      }
    65
    66      /**
    67       * Setter method for "file" tag attribute. (Mapping set in associated
    68       * BeanInfo class.)
    69       */
    70      public void setFileExpr(String fileExpr) {
    71          this.fileExpr = fileExpr;
    72      }
    73
    74      /**
    75       * Setter method for "classname" tag attribute. (Mapping set in associated
    76       * BeanInfo class.)
    77       */
    78      public void setClassnameExpr(String classnameExpr) {
    79          this.classnameExpr = classnameExpr;
    80      }
    81
    82      /**
    83       * Resets attribute values for tag reuse.
    84       */
    85      public void release() {
    86          super.release();
    87          setFileExpr(null);
    88          setClassnameExpr(null);
    89      }
    90
    91      /**
    92       * Process the start tag.
    93       *
    94       * @throws JspException if a JSP exception has occurred
    95       */
    96      public int doStartTag() throws JspException {
    97          evaluateExpressions();
    98
    99          return (super.doStartTag());
    100     }
    101
    102     /**
    103      * Processes all attribute values which use the JSTL expression evaluation
    104      * engine to determine their values.
    105      *
    106      * @throws JspException if a JSP exception has occurred
    107      */
    108     private void evaluateExpressions()
    109         throws JspException {
    110         String string = null;
    111
    112         if ((string =
    113                 EvalHelper.evalString("file", getFileExpr(), this, pageContext)) != null) {
    114             setFile(string);
    115         }
    116
    117         if ((string =
    118                 EvalHelper.evalString("classname", getClassnameExpr(), this,
    119                     pageContext)) != null) {
    120             setClassname(string);
    121         }
    122     }
    123 }