h


Standard Syntax:
     <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html" %>

XML Syntax:
     <anyxmlelement xmlns:h="http://java.sun.com/jsf/html" />

  This tag library contains JavaServer Faces component tags for all
  UIComponent + HTML RenderKit Renderer combinations defined in the
  JavaServer Faces Specification.

Tag Library Information
Display NameNone
Version1.0
Short Nameh
URIhttp://java.sun.com/jsf/html
 

Tag Summary
commandButton

Renders an HTML "input" element.

Decode Behavior

    Obtain the Map from the "requestParameterMap" property of the ExternalContext. If the value in theMap for the value of the "clientId" property of the component is null, create a String by concatenating the value of the "clientId" property of the component with the String ".x" (without the quotes). Create another String in the same manner, but concatenate ".y" (without the quotes). Ifnull is the value in the Map for both Strings, return from decode(). If the value in theMap for the value of the "clientId" property of the component is not null, get the value of the "type" attribute, and convert it to lower case. If the result is equal to the String "reset" (without the quotes), return fromdecode(). Otherwise, create ajavax.faces.event.ActionEvent around the component, and pass it to the queueEvent() method of the component, which must be an instance ofUICommand.

Encode Behavior

    Render the clientId of the component as the value of the "name" attribute. Render the current value of the component as the value of the "value" attribute. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute.

commandLink

Render an HTML "a" anchor element that acts like a form submit button when clicked.

General Behaviour

Both the encode and decode behavior require the ability to get the id/name for a hidden field whose value is set by the JavaScript form submit. This name must be constructed as follows:

  • Get the clientId for the form of which this component is a child.

  • AppendNamingContainer.SEPARATOR_CHAR.

  • Append a constant string that is the same for all command link components in the tree.

In the following text, this String is called hiddenFieldName.

Decode Behavior

    Obtain the "clientId" property of the component. Obtain theMap from the "requestParameterMap" property of theExternalContext. Derive hiddenFieldName as above. Get the entry in the Map under the key that is the hiddenFieldName. If the there is no entry, or the entry is the empty String, or the entry is not equal to the value of the "clientId" property, return immediately. If there is an entry, and its value is equal to the value of the "clientId" property, create a new javax.faces.event.ActionEvent instance around the component and call queueActionEvent() on the component, passing the event.

Encode Behavior

    Render "#" as the value of the "href" attribute. Render the current value of the component as the link text if it is specified. Render javascript that is functionally equivalent to the following as the value of the "onclick" attribute:

    document.forms['CLIENT_ID']['hiddenFieldName'].value='CLIENT_ID'; document.forms['CLIENT_ID']['PARAM1_NAME'].value='PARAM1_VALUE'; document.forms['CLIENT_ID']['PARAM2_NAME'].value='PARAM2_VALUE'; return false;

    document.forms['CLIENT_ID'].submit()" where hiddenFieldName isas described above, CLIENT_ID is the clientId of the UICommand component, PARAM*_NAME and PARAM*_VALUE are the names and values, respectively, of any nested UIParameter children. The name and the value must be URLEncoded. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute. Render any non-UIParameter children as normal inside of the "a" element. These will appear as the link text. Allow the form renderer to output a single "input" element (for the entire page, regardless of how many command link components are in the page) of "type" "hidden" whose "name" is the value of hiddenFieldName, and which must not have a "value" attribute. Multiple occurrences of command link components in the tree should not cause multiple hiddenFieldName hidden fields. Allow the form renderer to output an "input" element of "type" "hidden" for each of the nested UIParameter children, taking the name property (but not the value) from each one in turn.

dataTable

Renders an HTML "table" element compliant with the HTML 401 specification. Please consult the javadoc for UIData to supplement this specification. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute on the "table" element. Any pass-through attributes are also rendered on the "table" element.

Rendering the header

    If the UIData component has a "header" facet, or any of the child UIColumn components has a "header" facet, render a "thead" element. If the UIData component has a "header" facet, encode its contents inside of "tr" and "th" elements, respectively. Output the value of the "headerClass" attribute of the UIData component, if present, as the value of the "class" attribute on the "th". Output the number of child UIColumn components of theUIData component as the value of the "colspan" attribute on the "th". Output "colgroup" as the value of the "scope" attribute on the "th" element.

    If any of the child UIColumn components has a "header" facet render a "tr" element. For eachUIColumn that actually has a "header" facet, render it inside of a "th" element. Columns that don't have a "header" facet cause an empty "th" element to be rendered. Output the value of the "headerClass" attribute of the UIData component, if present, as the value of the "class" attribute on the "th". Output "col" as the value of the "colgroup" attribute on the "th" element.

    Close out the "thead" element.

Rendering the footer

    Follow the same process as for the header, except replace "header" with "footer", "th" with "td", "thead" with "tfoot", and "headerClass" with "footerClass". Do not render any "scope" attribute for the footer.

Rendering the table body

    Render a "tbody" element. Keep track of the result of the "rows" property on the UIData component. Keep track of the number of rows we have rendered so far. Iterate through the rows. Set the "rowIndex" property of the UIDatacomponent to be correct as we iterate through the rows. Stop rendering children and close out the "tbody" element if the "rowAvailable" property of the UIData returned false. Output a "tr" element. Output the value of the "rowClasses" per the attribute description below. For each UIColumn child, output a "td" element, attaching the value of the "columnClasses" attribute of the UIData component per the attribute description below. Recursively encode each child of each UIColumn child. Close out the "td" element. When done with the row, close out the "tr" element. When done with all the rows, close out the "tbody" element.

When done rendering all the rows, set the "rowIndex" property of the UIData to -1, and close out the "table" element.

form

Renders an HTML "form" element.

Decode Behavior

    Obtain the Map from the "requestParameterMap" property of the ExternalContext. If the map contains an entry for the "clientId" of this UIForm component, call setSubmitted(true) on the form, otherwise callsetSubmitted(false) on the form.

Encode Behavior

    The value of the "method" attribute must be "post". The value of the "action" attribute must be the result of passing the view identifier of the current view to the getActionURL() method of the ViewHandler for this application, then passing that String to the encodeActionURL() method on the ExternalContext. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute. Render all the necessary hidden fields for all commandLink instances in the page just before the close of the "form" element.

graphicImage Renders an HTML "img" element. Render the clientId as the value of the "id" attribute. Render the value of the component as the value of the "src" attribute, after passing it to the getResourceUR() method of the ViewHandler for this application, and passing the result through the encodeResourceURL() method of theExternalContext. If present, render the value of the alt attribute as the value of the "alt" attribute. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute.
inputHidden

Renders an HTML "input" element of type "hidden".

Decode Behavior

    See the decode description for the Input Text renderer.

Encode Behavior

    Render the clientId of the component as the value of the "name" attribute. Render the current value of the component as the value of the "value" attribute.

inputSecret

Renders an HTML "input" element of "type" "password".

Decode Behavior

    See the decode description for the Input Text renderer.

Encode Behavior

    Render the clientId of the component as the value of the "name" attribute. Render the current value of the component as the value of the "value" attribute, if and only if the "redisplay" component attribute is the string "true". If the "styleClass" attribute is specified, render its value as the value of the "class" attribute.

inputText

Renders an HTML "input" element of "type" "text".

Decode Behavior

    Obtain the Map from the "requestParameterMap" property of the ExternalContext. If theMap contains an entry for the "clientId" of the component, pass the value of the entry to thesetSubmittedValue() method of the component, which must be an instance of EditableValueHolder.

Encode Behavior

    Render the clientId of the component as the value of the "name" attribute. Render the current value of the component as the value of the "value" attribute. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute.

inputTextarea

Renders an HTML "textarea" element.

Decode Behavior

    See the encode description for the Input Text renderer.

Encode Behavior

    Render the clientId as the value of the "name" attribute. Render the current valu eof the component inside the "textarea" element.

message

Render a single message for a specific component.

Set-up for Rendering

    Obtain the "summary" and "detail" properties fromUIMessage component. If not present, keep the empty string as the value, respectively. Obtain the firstFacesMessage to render from the component, using the "for" property of the UIMessage. This will be the only message we render. Obtain the severity style for this message. If the severity of the message isFacesMessage.SEVERITY_INFO, the severity style comes from the value of the "infoStyle" attribute. If the severity of the message isFacesMessage.SEVERITY_WARN, the severity style comes from the value of the "warnStyle" attribute, and so on for each of the severities, INFO, WARN, ERROR andFATAL. The same rules apply for obtaining the severity style class, but instead of "infoStyle, warnStyle", etc use "infoClass, warnClass", etc. Obtain the "style", "styleClass" and "layout" attributes from theUIMessage component. If we have a "style" attribute and a severity style attribute, use the severity style attribute as the value of the "style" attribute. If we have no "style" attribute, but do have a severity style, use the severity style as the value of the "style" attribute. The same precedence rules apply for the style class.

Rendering

    For the message renderer, we only render one row, for the first message. For the messages renderer, we render as many rows as we have messages. If either of the "style" or "styleClass" attributes has a non-null value (as determined above), render a "span" element, outputting the value of the "style" attribute as the the value of the "style" attribute, and outputting the value of the "styleClass" attribute as the value of the "class" attribute on the "span" element. If theUIMessage has a "tooltip" attribute with the value of "true", and the UIMessage has "showSummary" and "showDetail" properties with the value "true", if we haven't already written out the "span", output the "summary" as the value of the "title" attribute on the "span". If we haven't already written out a "title" attribute, and "showSummary" is true, output the summary. If "showDetail" is true, output the detail. Close out the span if necessary.

messages

The same as for the Message renderer, but output all the messages. If the value of the "layout" attribute is "table", render nested "table", "tr", and "td" elements, in that order, otherwise, don't render the table. The component is aUIMessages, and there is no "for" attribute. Therefore, use either null to obtain the messages from the FacesContext or the empty string if the components "globalOnly" property is true. If the layout was "table" close out the table elements.

outputFormat

Render parameterized text. Obtain the style and styleClass attributees from this component. If either are present, render a "span" element. Output the styleClass attribute (if present) as the value of the class attribute. Output the style attribute as the value of thestyle attribute. Accrue a list of the values of all child UIParameter components of this component. If there are one or more accumulated parameter values, convert the list of parameter values to an Object array, callMessageFormat.format(), passing the value of this component as the first argument, and the array of parameter values as the second argument, and render the result. Otherwise, render the value of this component unmodified.

outputLabel Renders an HTML "label" element. Render the current value of the component as label text if it is specified. If a "for" attribute is specified, find the component specified by the value of the "for" attribute, and render its client id as the value of the "for" attribute. If "styleClass" attribute is specified, render its value as the value of the "class" attribute.
outputLink Render an HTML "a" anchor element. The value of the component is rendered as the value of the "href" attribute. Any child UIParameter components are appended to the String to be output as the value of the "href" attribute as query parameters before rendering. The entire "href" string must be passed through a call to the encodeResourceURL() method of theExternalContext. The name of the UIParameter goes on the left hand side, and the value of the UIParameter on the right hand side. The name and the value must be URLEncoded. Each UIParameter instance is separeted by an ampersand, as dictated in the URL spec. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute.
outputText If the "styleClass" or "style" attributes are present, render a "span" element. If the "styleClass" attribute is present, render its value as the value of the "class" attribute. If the "style" attribute is present, pass it thru. If the "escape" attribute is not present, or it is present and its value is "true" all angle brackets should be converted to the ampersand xx semicolon syntax when rendering the value of the "value" attribute as the value of the component. If the "escape" attribute is present and is "false" the value of the component should be rendered as text without escaping.
panelGrid Renders an HTML "table" element, conforming to the rules in the HTML 401 specification. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute. Render the pass-through attributes in the table below. Render the "header" facet, if present, inside of "thead", "tr", and "th" elements, nested in that order. If the "headerClass" attribute is specifed, render its value as the value of the "class" attribute on the "th" element. Render "colgroup" as the value of the "scope" attribute. Render the value of the "columns" attribute as the value of the "colspan" attribute on the "th" element. Render the "footer" facet if present, using similar logic to the rendering of the "header", but replacing "thead" with "tfoot", "th" with "td", and "headerClass" with "footerClass". Render the children of the UIPanel component inside of a "tbody" element. Render the children based on the value of the "columns" attribute, creating a new row each time a "columns" worth of children have been rendered. Each child is rendered inside of a "td" element. If a child has "rendered==false" it is not rendered, and the column counter must not be incremented.
panelGroup Intended for use in situations when only one UIComponent child can be nested, such as in the case of facets. If the "style" or "styleClass" attributes are present, render a "span" element, outputting the value of the "style" attribute as the value of the "style" attribute, and the value of the "styleClass" attribute as the value of the "class" attribute.
selectBooleanCheckbox

Renders an HTML "input" element of type "checkbox".

Decode Behavior

    Obtain the Map from the "requestParameterMap" property of the ExternalContext. If there is no entry in the Map for the "clientId" of this component, pass "false" to the setSubmittedValue() method of the component, which must be an instance ofEditableValueHolder. If there is an entry, and its value is equal, ignoring case and without quotes, to any of the Strings: "on", "yes" or "true" pass true to thesetSubmittedValue() method of the component.

Encode Behavior

    Render the clientId of the component as the value of the "name" attribute. If the current value of the component is "true", output the "checked" attribute. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute.

selectManyCheckbox

Render an HTML checkbox list.

Decode Behavior

Encode Behavior

    Render a "table" element. If the "styleClass" is specified, render the value of the "styleClass" attribute as the value of the "class" attribute on the "table" element. If the "style", "border" attributes are specified, pass them thru. If the "layout" attribute is specified, and its value is "pageDirection", render the children elements vertically, otherwise horizontally, in the table. If any of the children are an instance of SelectItemGroup, render them as a nested table. Each of the children are ultimately rendererd as follows. Render a "label" element. Inside of the "label", render an "input" element of "type" "checkbox" for each child component. As an exception to the general rules about how to handle the "id" attribute, render it as an attribute on the outer "table" element, the value of which is the clientId of the component per the rules at the beginning of this specification.The "id" attribute must not be output on each "input" element. The value of the current SelectItem is rendered as the value of the "value" attribute. If the value of the enclosing UISelectMany matches the current value, render "checked" as the value of the "checked" attribute. If the current SelectItem.isDisabled() returns true, render "disabled" as the value of the "disabled" attribute. Close out the "input" element and render the return value from SelectItem.getLabel(). Close out the "label" element and any other nested elements. See the "Rendering the option elements" specification forListboxRenderer for more detail on how to render the "option" elements in this renderer.

selectManyListbox

Render an HTML option list.

Decode Behavior

This section documents the decode behavior for all renderers that handle UISelectMany or UISelectOne components.

    Decode Behavior forUISelectMany components

      Obtain the Map from the "requestParameterValuesMap" property of theExternalContext. If the Map contains an entry for the "clientId" of the component, pass the value of the entry, cast to a String [], to thesetSubmittedValue() method of the component, which must be an EditableValueHolder. If theMap does not contain an entry, create an emptyString array and callsetSubmittedValue() with it.

    Decode Behavior forUISelectOne components

      Obtain the Map from the "requestParameterMap" property of the ExternalContext. If there is aMap entry for the "clientId" property of the component, pass it to the setSubmittedValue() method of the component.

    Encode Behavior

      Render an HTML "select" element. Render the clientId of the component as the value of the "name" attribute. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute on the "select" element. If the component is a UISelectMany instance, render "multiple" as the value of the "multiple" attribute. If the "size" attribute is specified, render its value as the value of the "size" attribute. Otherwise use the number of items as the value of the "size" attribute.

    Rendering the "option" elements

      The only valid children of this component areUISelectItem or UISelectItems instances. Iterate over the children of this component, and accrue a list ofjavax.faces.model.SelectItem instances. If the current child is a UISelectItem create aSelectIteminstance from its itemValue, itemLabel and itemDescription properties, add it to the list. If the current child is aUISelectItems instance, call itsgetValue() method. If the result is aSelectItem bean, add it to the list. If the result is an array of SelectItem beans, add each one t othe list. If the result is a Collection ofSelectItem beans, add each one to the list. If the result isa Map, create a SelectItem bean for each entry in the Map using the key as the label, the value as the value, and null as the description. Iterate over the list of SelectItem beans. If the current element is a SelectItemGroup, render an "optgroup" element with a "label" attribute, the value of which is the "label" property from the current element, then callgetSelectItems() and render each element as below. If the current element is not a SelectItemGroup, render an "option" element. Follow the conversion rules in the spec to obtain a renderable String from the "value" property of the current element, render that as the value of the "value" atribute. Now it is time to see if the current element is the selected value. call itsgetSubmittedValue() method, casting the result to anObject [], otherwise the component must be aUISelectOne instance, call itsgetSubmittedValue() method and create an Object [] around the result. If the resultant array is non-null, we look in the array for a value that, when we pass the renderable value to its equals() method, it returnstrue, meaning the current element is selected. If the resultant array is null, if the component is aUISelectMany, call its getValue() method. If the result is a List obtain the values in the list as an array. Otherwise, the component must be aUISelectOne instance. Call itsgetValue() method, which must be an Object array. Look for an element in the resultant array that, 1. when we pass the renderable value to its equals() method, it returns true , or 2. if the renderable value is null, and there is a null element in the array, also conclude that the current element is selected. Otherwise the current element is not selected. Now, if the current value is selected, write out an HTML boolean property "selected". If the current SelectItem.isDisabled() returns true, render "disabled" as the value of the "disabled" attribute.

selectManyMenu

Render an HTML option list.

Decode Behavior

Encode Behavior

    Render an HTML "select" element. Render the clientId of the component as the value of the "name" attribute. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute on the "select" element. If the component to be rendered is a UISelectMany, render "true" as the value of the "multiple" attribute. Render "1" as the value of the "size" attribute. See the "Rendering the option elements" specification for ListboxRenderer for more detail on how to render the "option" elements in this renderer.

selectOneListbox

Render an HTML option list.

Decode Behavior

Encode Behavior

    Render an HTML "select" element. Render the clientId of the component as the value of the "name" attribute. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute on the "select" element. If the component to be rendered is a UISelectMany, render "true" as the value of the "multiple" attribute. If the "size" attribute is specified, render its value as the value of the "size" attribute. Otherwise use the number of items as the value of the "size" attribute. See the "Rendering the option elements" specification for ListboxRenderer for more detail on how to render the "option" elements in this renderer.

selectOneMenu

Render an HTML option list.

Decode Behavior

Encode Behavior

    Render an HTML "select" element. Render the clientId of the component as the value of the "name" attribute. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute on the "select" element. If the component to be rendered is a UISelectMany, render "true" as the value of the "multiple" attribute. Use the number of items as the value of the "size" attribute. See the "Rendering the option elements" specification forListboxRenderer for more detail on how to render the "option" elements in this renderer.

selectOneRadio

Render a set of html "input" elements of type "radio".

Decode Behavior

Encode Behavior

    Render a "table" element. If the "styleClass" is specified, render the value of the "styleClass" attribute as the value of the "class" attribute on the "table" element. If the "style", "border" attributes are specified, pass them thru. If the "layout" attribute is specified, and its value is "pageDirection", render the children elements vertically, otherwise horizontally, in the table. If any of the children are an instance of SelectItemGroup, render them as a nested table. Render a "label" element. Each of the children are ultimately rendererd as an "input" element of "type" "radio". As an exception to the general rules about how to handle the "id" attribute, render it as an attribute on the outer "table" element, the value of which is the clientId of the component per the rules at the beginning of this specification. The "id" attribute must not be output on each "input" element. Output the value of the "label" attribute of the SelectItem after the "input" element. If the value of the currently rendered child is equal to the value of the parent UISelectOne, render an appropriate HTML boolean value indicating "checked" for the enclosing "input". If the current SelectItem.isDisabled() returns true, render "disabled" as the value of the "disabled" attribute. See the "Rendering the option elements" specification for ListboxRenderer for more detail on how to render the "option" elements in this renderer. Close out the "label" element.

column

Renders a UIComponent that represents a single column of data within a parent UIData component.

 

Tag Library Validator
com.sun.faces.taglib.html_basic.HtmlBasicValidator No Description
 


Java, JSP, and JavaServer Pages are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries. Copyright 2002-3 Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054, U.S.A. All Rights Reserved.