View Javadoc

    1   /*
    2    * $Id: NestedTextareaTag.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.struts.taglib.nested.html;
    22
    23  import org.apache.struts.taglib.html.TextareaTag;
    24  import org.apache.struts.taglib.nested.NestedNameSupport;
    25  import org.apache.struts.taglib.nested.NestedPropertyHelper;
    26
    27  import javax.servlet.http.HttpServletRequest;
    28  import javax.servlet.jsp.JspException;
    29
    30  /**
    31   * NestedTextareaTag.
    32   *
    33   * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004)
    34   *          $
    35   * @since Struts 1.1
    36   */
    37  public class NestedTextareaTag extends TextareaTag implements NestedNameSupport {
    38      /* the usual private member variables */
    39      private String originalName = null;
    40      private String originalProperty = null;
    41
    42      /**
    43       * Overriding method of the heart of the matter. Gets the relative
    44       * property and leaves the rest up to the original tag implementation.
    45       * Sweet.
    46       *
    47       * @return int JSP continuation directive. This is in the hands of the
    48       *         super class.
    49       */
    50      public int doStartTag() throws JspException {
    51          // get the original properties
    52          originalName = getName();
    53          originalProperty = getProperty();
    54
    55          // request
    56          HttpServletRequest request =
    57              (HttpServletRequest) pageContext.getRequest();
    58
    59          // set the properties
    60          NestedPropertyHelper.setNestedProperties(request, this);
    61
    62          // let the super do it's thing
    63          return super.doStartTag();
    64      }
    65
    66      /**
    67       * Complete the processing of the tag. The nested tags here will restore
    68       * all the original value for the tag itself and the nesting context.
    69       *
    70       * @return int to describe the next step for the JSP processor
    71       * @throws JspException for the bad things JSP's do
    72       */
    73      public int doEndTag() throws JspException {
    74          // do the super's ending part
    75          int i = super.doEndTag();
    76
    77          // reset the properties
    78          setName(originalName);
    79          setProperty(originalProperty);
    80
    81          // continue
    82          return i;
    83      }
    84
    85      /**
    86       * Release the tag's resources and reset the values.
    87       */
    88      public void release() {
    89          super.release();
    90
    91          // reset the originals
    92          originalName = null;
    93          originalProperty = null;
    94      }
    95  }