View Javadoc

    1   /*
    2    * $Id: ELStrutsTag.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.bean;
    22
    23  import org.apache.struts.taglib.bean.StrutsTag;
    24  import org.apache.strutsel.taglib.utils.EvalHelper;
    25
    26  import javax.servlet.jsp.JspException;
    27
    28  /**
    29   * Define a scripting variable that exposes the requested Struts internal
    30   * configuraton object. <p> This class is a subclass of the class
    31   * <code>org.apache.struts.taglib.bean.StrutsTag</code> which provides most of
    32   * the described functionality.  This subclass allows all attribute values to
    33   * be specified as expressions utilizing the JavaServer Pages Standard Library
    34   * expression language.
    35   *
    36   * @version $Rev: 471754 $
    37   */
    38  public class ELStrutsTag extends StrutsTag {
    39      /**
    40       * Instance variable mapped to "id" tag attribute. (Mapping set in
    41       * associated BeanInfo class.)
    42       */
    43      private String idExpr;
    44
    45      /**
    46       * Instance variable mapped to "formBean" tag attribute. (Mapping set in
    47       * associated BeanInfo class.)
    48       */
    49      private String formBeanExpr;
    50
    51      /**
    52       * Instance variable mapped to "forward" tag attribute. (Mapping set in
    53       * associated BeanInfo class.)
    54       */
    55      private String forwardExpr;
    56
    57      /**
    58       * Instance variable mapped to "mapping" tag attribute. (Mapping set in
    59       * associated BeanInfo class.)
    60       */
    61      private String mappingExpr;
    62
    63      /**
    64       * Getter method for "id" tag attribute. (Mapping set in associated
    65       * BeanInfo class.)
    66       */
    67      public String getIdExpr() {
    68          return (idExpr);
    69      }
    70
    71      /**
    72       * Getter method for "formBean" tag attribute. (Mapping set in associated
    73       * BeanInfo class.)
    74       */
    75      public String getFormBeanExpr() {
    76          return (formBeanExpr);
    77      }
    78
    79      /**
    80       * Getter method for "forward" tag attribute. (Mapping set in associated
    81       * BeanInfo class.)
    82       */
    83      public String getForwardExpr() {
    84          return (forwardExpr);
    85      }
    86
    87      /**
    88       * Getter method for "mapping" tag attribute. (Mapping set in associated
    89       * BeanInfo class.)
    90       */
    91      public String getMappingExpr() {
    92          return (mappingExpr);
    93      }
    94
    95      /**
    96       * Setter method for "id" tag attribute. (Mapping set in associated
    97       * BeanInfo class.)
    98       */
    99      public void setIdExpr(String idExpr) {
    100         this.idExpr = idExpr;
    101     }
    102
    103     /**
    104      * Setter method for "formBean" tag attribute. (Mapping set in associated
    105      * BeanInfo class.)
    106      */
    107     public void setFormBeanExpr(String formBeanExpr) {
    108         this.formBeanExpr = formBeanExpr;
    109     }
    110
    111     /**
    112      * Setter method for "forward" tag attribute. (Mapping set in associated
    113      * BeanInfo class.)
    114      */
    115     public void setForwardExpr(String forwardExpr) {
    116         this.forwardExpr = forwardExpr;
    117     }
    118
    119     /**
    120      * Setter method for "mapping" tag attribute. (Mapping set in associated
    121      * BeanInfo class.)
    122      */
    123     public void setMappingExpr(String mappingExpr) {
    124         this.mappingExpr = mappingExpr;
    125     }
    126
    127     /**
    128      * Resets attribute values for tag reuse.
    129      */
    130     public void release() {
    131         super.release();
    132         setIdExpr(null);
    133         setFormBeanExpr(null);
    134         setForwardExpr(null);
    135         setMappingExpr(null);
    136     }
    137
    138     /**
    139      * Process the start tag.
    140      *
    141      * @throws JspException if a JSP exception has occurred
    142      */
    143     public int doStartTag() throws JspException {
    144         evaluateExpressions();
    145
    146         return (super.doStartTag());
    147     }
    148
    149     /**
    150      * Processes all attribute values which use the JSTL expression evaluation
    151      * engine to determine their values.
    152      *
    153      * @throws JspException if a JSP exception has occurred
    154      */
    155     private void evaluateExpressions()
    156         throws JspException {
    157         String string = null;
    158
    159         if ((string =
    160                 EvalHelper.evalString("id", getIdExpr(), this, pageContext)) != null) {
    161             setId(string);
    162         }
    163
    164         if ((string =
    165                 EvalHelper.evalString("formBean", getFormBeanExpr(), this,
    166                     pageContext)) != null) {
    167             setFormBean(string);
    168         }
    169
    170         if ((string =
    171                 EvalHelper.evalString("forward", getForwardExpr(), this,
    172                     pageContext)) != null) {
    173             setForward(string);
    174         }
    175
    176         if ((string =
    177                 EvalHelper.evalString("mapping", getMappingExpr(), this,
    178                     pageContext)) != null) {
    179             setMapping(string);
    180         }
    181     }
    182 }