View Javadoc

    1   /*
    2    * $Id: HtmlTag.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
    22  package org.apache.struts.faces.taglib;
    23
    24
    25  import javax.faces.component.UIComponent;
    26  import javax.servlet.jsp.JspException;
    27  import javax.servlet.jsp.PageContext;
    28  import org.apache.struts.Globals;
    29
    30
    31  /**
    32   * <p>Render an HTML <code>&lt;html&gt;</code> element for
    33   * the <em>Struts-Faces Integration Library</em>.</p>
    34   *
    35   * @version $Rev: 471754 $ $Date: 2006-11-06 08:55:09 -0600 (Mon, 06 Nov 2006) $
    36   */
    37
    38  public class HtmlTag extends AbstractFacesTag {
    39
    40
    41      // ---------------------------------------------------------- Tag Attributes
    42
    43
    44      /**
    45       * <p>Set a locale if not set yet.</p>
    46       */
    47      private String locale = null;
    48
    49      public void setLocale(String locale) {
    50          this.locale = locale;
    51      }
    52
    53
    54      /**
    55       * <p>Render Struts HTML tags as xhtml.</p>
    56       */
    57      private String xhtml = null;
    58
    59      public void setXhtml(String xhtml) {
    60          this.xhtml = xhtml;
    61      }
    62
    63
    64      // ---------------------------------------------------------- Public Methods
    65
    66
    67      /**
    68       * <p>Return the type of component to be created for this tag.</p>
    69       */
    70      public String getComponentType() {
    71
    72          return ("org.apache.struts.faces.Html");
    73
    74      }
    75
    76
    77      /**
    78       * <p>Override <code>doStartTag()</code> method to also set a page
    79       * context attribute if <code>xhtml</code> is <code>>true</code>.</p>
    80       */
    81      public int doStartTag() throws JspException {
    82
    83          int result = super.doStartTag();
    84          if (xhtml != null) {
    85              pageContext.setAttribute(Globals.XHTML_KEY, "true",
    86                                       PageContext.PAGE_SCOPE);
    87          }
    88          return (result);
    89
    90      }
    91
    92
    93      /**
    94       * <p>Return the <code>rendererType</code> to be used for rendering
    95       * our component.</p>
    96       */
    97      public String getRendererType() {
    98
    99          return ("org.apache.struts.faces.Html");
    100
    101     }
    102
    103
    104     /**
    105      * <p>Release resources allocated to this tag instance.</p>
    106      */
    107     public void release() {
    108
    109         super.release();
    110         this.locale = null;
    111         this.xhtml = null;
    112
    113     }
    114
    115
    116     // ------------------------------------------------------- Protected Methods
    117
    118
    119     /**
    120      * <p>Override attributes set on this tag instance.</p>
    121      *
    122      * @param component Component whose attributes should be overridden
    123      */
    124     protected void setProperties(UIComponent component) {
    125
    126         super.setProperties(component);
    127         setBooleanAttribute(component, "locale", locale);
    128         setBooleanAttribute(component, "xhtml", xhtml);
    129
    130     }
    131
    132
    133 }