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 }