View Javadoc

    1   /*
    2    * $Id: ELFormTag.java 479635 2006-11-27 14:27:18Z pbenedict $
    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.html;
    22
    23  import org.apache.struts.taglib.html.FormTag;
    24  import org.apache.strutsel.taglib.utils.EvalHelper;
    25
    26  import javax.servlet.jsp.JspException;
    27
    28  /**
    29   * Custom tag that represents an input form, associated with a bean whose
    30   * properties correspond to the various fields of the form. <p> This class is
    31   * a subclass of the class <code>org.apache.struts.taglib.html.FormTag</code>
    32   * which provides most of the described functionality.  This subclass allows
    33   * all attribute values to be specified as expressions utilizing the
    34   * JavaServer Pages Standard Library expression language.
    35   *
    36   * @version $Rev: 479635 $
    37   */
    38  public class ELFormTag extends FormTag {
    39      /**
    40       * Instance variable mapped to "action" tag attribute. (Mapping set in
    41       * associated BeanInfo class.)
    42       */
    43      private String actionExpr;
    44
    45      /**
    46       * Instance variable mapped to "dir" tag attribute. (Mapping set in
    47       * associated BeanInfo class.)
    48       */
    49      private String dirExpr;
    50
    51      /**
    52       * Instance variable mapped to "disabled" tag attribute. (Mapping set in
    53       * associated BeanInfo class.)
    54       */
    55      private String disabledExpr;
    56
    57      /**
    58       * Instance variable mapped to "enctype" tag attribute. (Mapping set in
    59       * associated BeanInfo class.)
    60       */
    61      private String enctypeExpr;
    62
    63      /**
    64       * Instance variable mapped to "focus" tag attribute. (Mapping set in
    65       * associated BeanInfo class.)
    66       */
    67      private String focusExpr;
    68
    69      /**
    70       * Instance variable mapped to "focusIndex" tag attribute. (Mapping set in
    71       * associated BeanInfo class.)
    72       */
    73      private String focusIndexExpr;
    74
    75      /**
    76       * Instance variable mapped to "lang" tag attribute. (Mapping set in
    77       * associated BeanInfo class.)
    78       */
    79      private String langExpr;
    80
    81      /**
    82       * Instance variable mapped to "method" tag attribute. (Mapping set in
    83       * associated BeanInfo class.)
    84       */
    85      private String methodExpr;
    86
    87      /**
    88       * Instance variable mapped to "onreset" tag attribute. (Mapping set in
    89       * associated BeanInfo class.)
    90       */
    91      private String onresetExpr;
    92
    93      /**
    94       * Instance variable mapped to "onsubmit" tag attribute. (Mapping set in
    95       * associated BeanInfo class.)
    96       */
    97      private String onsubmitExpr;
    98
    99      /**
    100      * Instance variable mapped to "readonly" tag attribute. (Mapping set in
    101      * associated BeanInfo class.)
    102      */
    103     private String readonlyExpr;
    104
    105     /**
    106      * Instance variable mapped to "scriptLanguage" tag attribute. (Mapping
    107      * set in associated BeanInfo class.)
    108      */
    109     private String scriptLanguageExpr;
    110
    111     /**
    112      * Instance variable mapped to "style" tag attribute. (Mapping set in
    113      * associated BeanInfo class.)
    114      */
    115     private String styleExpr;
    116
    117     /**
    118      * Instance variable mapped to "styleClass" tag attribute. (Mapping set in
    119      * associated BeanInfo class.)
    120      */
    121     private String styleClassExpr;
    122
    123     /**
    124      * Instance variable mapped to "styleId" tag attribute. (Mapping set in
    125      * associated BeanInfo class.)
    126      */
    127     private String styleIdExpr;
    128
    129     /**
    130      * Instance variable mapped to "target" tag attribute. (Mapping set in
    131      * associated BeanInfo class.)
    132      */
    133     private String targetExpr;
    134
    135     /**
    136      * Instance variable mapped to "acceptCharset" tag attribute. (Mapping set
    137      * in associated BeanInfo class.)
    138      */
    139     private String acceptCharsetExpr;
    140
    141     /**
    142      * Getter method for "action" tag attribute. (Mapping set in associated
    143      * BeanInfo class.)
    144      */
    145     public String getActionExpr() {
    146         return (actionExpr);
    147     }
    148
    149     /**
    150      * Getter method for "dir" tag attribute. (Mapping set in associated
    151      * BeanInfo class.)
    152      */
    153     public String getDirExpr() {
    154         return (dirExpr);
    155     }
    156
    157     /**
    158      * Getter method for "disabled" tag attribute. (Mapping set in associated
    159      * BeanInfo class.)
    160      */
    161     public String getDisabledExpr() {
    162         return (disabledExpr);
    163     }
    164
    165     /**
    166      * Getter method for "enctype" tag attribute. (Mapping set in associated
    167      * BeanInfo class.)
    168      */
    169     public String getEnctypeExpr() {
    170         return (enctypeExpr);
    171     }
    172
    173     /**
    174      * Getter method for "focus" tag attribute. (Mapping set in associated
    175      * BeanInfo class.)
    176      */
    177     public String getFocusExpr() {
    178         return (focusExpr);
    179     }
    180
    181     /**
    182      * Getter method for "focusIndex" tag attribute. (Mapping set in
    183      * associated BeanInfo class.)
    184      */
    185     public String getFocusIndexExpr() {
    186         return (focusIndexExpr);
    187     }
    188
    189     /**
    190      * Getter method for "lang" tag attribute. (Mapping set in associated
    191      * BeanInfo class.)
    192      */
    193     public String getLangExpr() {
    194         return (langExpr);
    195     }
    196
    197     /**
    198      * Getter method for "method" tag attribute. (Mapping set in associated
    199      * BeanInfo class.)
    200      */
    201     public String getMethodExpr() {
    202         return (methodExpr);
    203     }
    204
    205     /**
    206      * Getter method for "onreset" tag attribute. (Mapping set in associated
    207      * BeanInfo class.)
    208      */
    209     public String getOnresetExpr() {
    210         return (onresetExpr);
    211     }
    212
    213     /**
    214      * Getter method for "onsubmit" tag attribute. (Mapping set in associated
    215      * BeanInfo class.)
    216      */
    217     public String getOnsubmitExpr() {
    218         return (onsubmitExpr);
    219     }
    220
    221     /**
    222      * Getter method for "readonly" tag attribute. (Mapping set in associated
    223      * BeanInfo class.)
    224      */
    225     public String getReadonlyExpr() {
    226         return (readonlyExpr);
    227     }
    228
    229     /**
    230      * Getter method for "scriptLanguage" tag attribute. (Mapping set in
    231      * associated BeanInfo class.)
    232      */
    233     public String getScriptLanguageExpr() {
    234         return (scriptLanguageExpr);
    235     }
    236
    237     /**
    238      * Getter method for "style" tag attribute. (Mapping set in associated
    239      * BeanInfo class.)
    240      */
    241     public String getStyleExpr() {
    242         return (styleExpr);
    243     }
    244
    245     /**
    246      * Getter method for "styleClass" tag attribute. (Mapping set in
    247      * associated BeanInfo class.)
    248      */
    249     public String getStyleClassExpr() {
    250         return (styleClassExpr);
    251     }
    252
    253     /**
    254      * Getter method for "styleId" tag attribute. (Mapping set in associated
    255      * BeanInfo class.)
    256      */
    257     public String getStyleIdExpr() {
    258         return (styleIdExpr);
    259     }
    260
    261     /**
    262      * Getter method for "target" tag attribute. (Mapping set in associated
    263      * BeanInfo class.)
    264      */
    265     public String getTargetExpr() {
    266         return (targetExpr);
    267     }
    268
    269     /**
    270      * Getter method for "acceptCharset" tag attribute. (Mapping set in
    271      * associated BeanInfo class.)
    272      */
    273     public String getAcceptCharsetExpr() {
    274         return (acceptCharsetExpr);
    275     }
    276
    277     /**
    278      * Setter method for "action" tag attribute. (Mapping set in associated
    279      * BeanInfo class.)
    280      */
    281     public void setActionExpr(String actionExpr) {
    282         this.actionExpr = actionExpr;
    283     }
    284
    285     /**
    286      * Setter method for "dir" tag attribute. (Mapping set in associated
    287      * BeanInfo class.)
    288      */
    289     public void setDirExpr(String dirExpr) {
    290         this.dirExpr = dirExpr;
    291     }
    292
    293     /**
    294      * Setter method for "disabled" tag attribute. (Mapping set in associated
    295      * BeanInfo class.)
    296      */
    297     public void setDisabledExpr(String disabledExpr) {
    298         this.disabledExpr = disabledExpr;
    299     }
    300
    301     /**
    302      * Setter method for "enctype" tag attribute. (Mapping set in associated
    303      * BeanInfo class.)
    304      */
    305     public void setEnctypeExpr(String enctypeExpr) {
    306         this.enctypeExpr = enctypeExpr;
    307     }
    308
    309     /**
    310      * Setter method for "focus" tag attribute. (Mapping set in associated
    311      * BeanInfo class.)
    312      */
    313     public void setFocusExpr(String focusExpr) {
    314         this.focusExpr = focusExpr;
    315     }
    316
    317     /**
    318      * Setter method for "focusIndex" tag attribute. (Mapping set in
    319      * associated BeanInfo class.)
    320      */
    321     public void setFocusIndexExpr(String focusIndexExpr) {
    322         this.focusIndexExpr = focusIndexExpr;
    323     }
    324
    325     /**
    326      * Setter method for "lang" tag attribute. (Mapping set in associated
    327      * BeanInfo class.)
    328      */
    329     public void setLangExpr(String langExpr) {
    330         this.langExpr = langExpr;
    331     }
    332
    333     /**
    334      * Setter method for "method" tag attribute. (Mapping set in associated
    335      * BeanInfo class.)
    336      */
    337     public void setMethodExpr(String methodExpr) {
    338         this.methodExpr = methodExpr;
    339     }
    340
    341     /**
    342      * Setter method for "onreset" tag attribute. (Mapping set in associated
    343      * BeanInfo class.)
    344      */
    345     public void setOnresetExpr(String onresetExpr) {
    346         this.onresetExpr = onresetExpr;
    347     }
    348
    349     /**
    350      * Setter method for "onsubmit" tag attribute. (Mapping set in associated
    351      * BeanInfo class.)
    352      */
    353     public void setOnsubmitExpr(String onsubmitExpr) {
    354         this.onsubmitExpr = onsubmitExpr;
    355     }
    356
    357     /**
    358      * Setter method for "readonly" tag attribute. (Mapping set in associated
    359      * BeanInfo class.)
    360      */
    361     public void setReadonlyExpr(String readonlyExpr) {
    362         this.readonlyExpr = readonlyExpr;
    363     }
    364
    365     /**
    366      * Setter method for "scriptLanguage" tag attribute. (Mapping set in
    367      * associated BeanInfo class.)
    368      */
    369     public void setScriptLanguageExpr(String scriptLanguageExpr) {
    370         this.scriptLanguageExpr = scriptLanguageExpr;
    371     }
    372
    373     /**
    374      * Setter method for "style" tag attribute. (Mapping set in associated
    375      * BeanInfo class.)
    376      */
    377     public void setStyleExpr(String styleExpr) {
    378         this.styleExpr = styleExpr;
    379     }
    380
    381     /**
    382      * Setter method for "styleClass" tag attribute. (Mapping set in
    383      * associated BeanInfo class.)
    384      */
    385     public void setStyleClassExpr(String styleClassExpr) {
    386         this.styleClassExpr = styleClassExpr;
    387     }
    388
    389     /**
    390      * Setter method for "styleId" tag attribute. (Mapping set in associated
    391      * BeanInfo class.)
    392      */
    393     public void setStyleIdExpr(String styleIdExpr) {
    394         this.styleIdExpr = styleIdExpr;
    395     }
    396
    397     /**
    398      * Setter method for "target" tag attribute. (Mapping set in associated
    399      * BeanInfo class.)
    400      */
    401     public void setTargetExpr(String targetExpr) {
    402         this.targetExpr = targetExpr;
    403     }
    404
    405     /**
    406      * Setter method for "acceptCharset" tag attribute. (Mapping set in
    407      * associated BeanInfo class.)
    408      */
    409     public void setAcceptCharsetExpr(String acceptCharsetExpr) {
    410         this.acceptCharsetExpr = acceptCharsetExpr;
    411     }
    412
    413     /**
    414      * Resets attribute values for tag reuse.
    415      */
    416     public void release() {
    417         super.release();
    418         setActionExpr(null);
    419         setDirExpr(null);
    420         setDisabledExpr(null);
    421         setEnctypeExpr(null);
    422         setFocusExpr(null);
    423         setFocusIndexExpr(null);
    424         setLangExpr(null);
    425         setMethodExpr(null);
    426         setOnresetExpr(null);
    427         setOnsubmitExpr(null);
    428         setReadonlyExpr(null);
    429         setScriptLanguageExpr(null);
    430         setStyleExpr(null);
    431         setStyleClassExpr(null);
    432         setStyleIdExpr(null);
    433         setTargetExpr(null);
    434         setAcceptCharsetExpr(null);
    435     }
    436
    437     /**
    438      * Process the start tag.
    439      *
    440      * @throws JspException if a JSP exception has occurred
    441      */
    442     public int doStartTag() throws JspException {
    443         evaluateExpressions();
    444
    445         return (super.doStartTag());
    446     }
    447
    448     /**
    449      * Processes all attribute values which use the JSTL expression evaluation
    450      * engine to determine their values.
    451      *
    452      * @throws JspException if a JSP exception has occurred
    453      */
    454     private void evaluateExpressions()
    455         throws JspException {
    456         String string = null;
    457         Boolean bool = null;
    458
    459         if ((string =
    460                 EvalHelper.evalString("action", getActionExpr(), this,
    461                     pageContext)) != null) {
    462             setAction(string);
    463         }
    464
    465         if ((string =
    466         		EvalHelper.evalString("dir", getDirExpr(), this,
    467         			pageContext)) != null) {
    468         	setDir(string);
    469         }
    470
    471         if ((bool =
    472                 EvalHelper.evalBoolean("disabled", getDisabledExpr(), this,
    473                     pageContext)) != null) {
    474             setDisabled(bool.booleanValue());
    475         }
    476
    477         if ((string =
    478                 EvalHelper.evalString("enctype", getEnctypeExpr(), this,
    479                     pageContext)) != null) {
    480             setEnctype(string);
    481         }
    482
    483         if ((string =
    484                 EvalHelper.evalString("focus", getFocusExpr(), this, pageContext)) != null) {
    485             setFocus(string);
    486         }
    487
    488         if ((string =
    489                 EvalHelper.evalString("focusIndex", getFocusIndexExpr(), this,
    490                     pageContext)) != null) {
    491             setFocusIndex(string);
    492         }
    493
    494         if ((string =
    495             	EvalHelper.evalString("lang", getLangExpr(), this,
    496             		pageContext)) != null) {
    497         	setLang(string);
    498         }
    499
    500         if ((string =
    501                 EvalHelper.evalString("method", getMethodExpr(), this,
    502                     pageContext)) != null) {
    503             setMethod(string);
    504         }
    505
    506         if ((string =
    507                 EvalHelper.evalString("onreset", getOnresetExpr(), this,
    508                     pageContext)) != null) {
    509             setOnreset(string);
    510         }
    511
    512         if ((string =
    513                 EvalHelper.evalString("onsubmit", getOnsubmitExpr(), this,
    514                     pageContext)) != null) {
    515             setOnsubmit(string);
    516         }
    517
    518         if ((bool =
    519                 EvalHelper.evalBoolean("readonly", getReadonlyExpr(), this,
    520                     pageContext)) != null) {
    521             setReadonly(bool.booleanValue());
    522         }
    523
    524         if ((bool =
    525                 EvalHelper.evalBoolean("scriptLanguage",
    526                     getScriptLanguageExpr(), this, pageContext)) != null) {
    527             setScriptLanguage(bool.booleanValue());
    528         }
    529
    530         if ((string =
    531                 EvalHelper.evalString("style", getStyleExpr(), this, pageContext)) != null) {
    532             setStyle(string);
    533         }
    534
    535         if ((string =
    536                 EvalHelper.evalString("styleClass", getStyleClassExpr(), this,
    537                     pageContext)) != null) {
    538             setStyleClass(string);
    539         }
    540
    541         if ((string =
    542                 EvalHelper.evalString("styleId", getStyleIdExpr(), this,
    543                     pageContext)) != null) {
    544             setStyleId(string);
    545         }
    546
    547         if ((string =
    548                 EvalHelper.evalString("target", getTargetExpr(), this,
    549                     pageContext)) != null) {
    550             setTarget(string);
    551         }
    552
    553         if ((string =
    554                 EvalHelper.evalString("acceptCharset", getAcceptCharsetExpr(),
    555                     this, pageContext)) != null) {
    556             setAcceptCharset(string);
    557         }
    558     }
    559 }