| |||||||
| FRAMES NO FRAMES | |||||||
Render an HTML option list.
Decode Behavior
This section documents the decode behavior for all renderers
that handle UISelectMany or UISelectOne
components.
Decode Behavior for
UISelectMany components
Obtain the Map from the
"requestParameterValuesMap" property of the
ExternalContext. If the Map contains
an entry for the "clientId" of the component, pass the value of
the entry, cast to a String [], to the
setSubmittedValue() method of the component, which
must be an EditableValueHolder. If the
Map does not contain an entry, create an empty
String array and call
setSubmittedValue() with it.
Decode Behavior for
UISelectOne components
Obtain the Map from the "requestParameterMap"
property of the ExternalContext. If there is a
Map 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 are
UISelectItem or UISelectItems instances.
Iterate over the children of this component, and accrue a list of
javax.faces.model.SelectItem instances. If the
current child is a UISelectItem create a
SelectIteminstance from its itemValue,
itemLabel and itemDescription properties, add
it to the list. If the current child is a
UISelectItems instance, call its
getValue() method. If the result is a
SelectItem 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 of
SelectItem 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 call
getSelectItems() 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 its
getSubmittedValue() method, casting the result to an
Object [], otherwise the component must be a
UISelectOne instance, call its
getSubmittedValue() 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 returns
true, meaning the current element is selected. If
the resultant array is null, if the component is a
UISelectMany, call its getValue()
method. If the result is a List obtain the values in
the list as an array. Otherwise, the component must be a
UISelectOne instance. Call its
getValue() 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.
| Tag Information | |
| Tag Class | com.icesoft.faces.component.ext.taglib.SelectManyListboxTag |
| TagExtraInfo Class | None |
| Body Content | JSP |
| Display Name | None |
| Attributes | ||||
| Name | Required | Request-time | Type | Description |
| onclickeffect | false | false | java.lang.String | Effect invoked on onclick event |
| ondblclickeffect | false | false | java.lang.String | Effect invoked on ondblclick event |
| onmousedowneffect | false | false | java.lang.String | Effect invoked on onmousedown event |
| onmouseupeffect | false | false | java.lang.String | Effect invoked on onmouseup event |
| onmousemoveeffect | false | false | java.lang.String | Effect invoked on onmousemove event |
| onmouseovereffect | false | false | java.lang.String | Effect invoked on onmouseover event |
| onmouseouteffect | false | false | java.lang.String | Effect invoked on onmouseout event |
| onchangeeffect | false | false | java.lang.String | Effect invoked on onchange event |
| onreseteffect | false | false | java.lang.String | Effect invoked on onreset event |
| onsubmiteffect | false | false | java.lang.String | Effect invoked on onsubmit event |
| onkeypresseffect | false | false | java.lang.String | Effect invoked on onkeypress event |
| onkeydowneffect | false | false | java.lang.String | Effect invoked on onkeydown event |
| onkeyupeffect | false | false | java.lang.String | Effect invoked on onkeyup event |
| converter | false | false | java.lang.String | Converter instance registered with this component. |
| id | false | false | java.lang.String | The component identifier for this component. This value must be unique within the closest parent component that is a naming container. |
| immediate | false | false | java.lang.String | Flag indicating that this component's value must be converted and validated immediately (that is, during Apply Request Values phase), rather than waiting until Process Validations phase. |
| rendered | false | false | java.lang.String | Flag indicating whether or not this component should be rendered (during Render Response Phase), or processed on any subsequent form submit. |
| required | false | false | java.lang.String | Flag indicating that the user is required to provide a submitted value for this input component. |
| validator | false | false | java.lang.String | MethodBinding representing a validator method that will be called during Process Validations to perform correctness checks on the value of this component. The expression must evaluate to a public method that takes FacesContext, UIComponent, and Object parameters, with a return type of void. |
| value | false | false | java.lang.String | The current value of this component. |
| valueChangeListener | false | false | java.lang.String | MethodBinding representing a value change listener method that will be notified when a new value has been set for this input component. The expression must evaluate to a public method that takes a ValueChangeEvent parameter, with a return type of void. |
| accesskey | false | false | java.lang.String | Access key that, when pressed, transfers focus to this element. |
| dir | false | false | java.lang.String | Direction indication for text that does not inherit directionality. Valid values are "LTR" (left-to-right) and "RTL" (right-to-left). |
| disabled | false | false | java.lang.String | Flag indicating that this element must never receive focus or be included in a subsequent submit. |
| enabledOnUserRole | false | false | java.lang.String | If user is in given role, this component will be rendered normally. If not, no hyperlink is rendered but all nested tags (=body) are rendered. |
| lang | false | false | java.lang.String | Code describing the language used in the generated markup for this component. |
| onblur | false | false | java.lang.String | Javascript code executed when this element loses focus. |
| onchange | false | false | java.lang.String | Javascript code executed when this element loses focus and its value has been modified since gaining focus. |
| onclick | false | false | java.lang.String | Javascript code executed when a pointer button is clicked over this element. |
| ondblclick | false | false | java.lang.String | Javascript code executed when a pointer button is double clicked over this element. |
| onfocus | false | false | java.lang.String | Javascript code executed when this element receives focus. |
| onkeydown | false | false | java.lang.String | Javascript code executed when a key is pressed down over this element. |
| onkeypress | false | false | java.lang.String | Javascript code executed when a key is pressed and released over this element. |
| onkeyup | false | false | java.lang.String | Javascript code executed when a key is released over this element. |
| onmousedown | false | false | java.lang.String | Javascript code executed when a pointer button is pressed down over this element. |
| onmousemove | false | false | java.lang.String | Javascript code executed when a pointer button is moved within this element. |
| onmouseout | false | false | java.lang.String | Javascript code executed when a pointer button is moved away from this element. |
| onmouseover | false | false | java.lang.String | Javascript code executed when a pointer button is moved onto this element. |
| onmouseup | false | false | java.lang.String | Javascript code executed when a pointer button is released over this element. |
| onselect | false | false | java.lang.String | Javascript code executed when text within this element is selected by the user. |
| partialSubmit | false | false | java.lang.String | Enable component to perform partial submit |
| readonly | false | false | java.lang.String | Flag indicating that this component will prohibit changes by the user. The element may receive focus unless it has also been disabled. |
| size | false | false | java.lang.String | Number of available options to be shown at all times. If not specified, all available options are shown. |
| style | false | false | java.lang.String | CSS style(s) to be applied when this component is rendered. |
| styleClass | false | false | java.lang.String | Space-separated list of CSS style class(es) to be applied when this element is rendered. This value must be passed through as the "class" attribute on generated markup. |
| tabindex | false | false | java.lang.String | Position of this element in the tabbing order for the current document. This value must be an integer between 0 and 32767. |
| title | false | false | java.lang.String | Advisory title information about markup elements generated for this component. |
| renderedOnUserRole | false | false | java.lang.String | If user is in given role, this component will be rendered normally. If not, nothing is rendered and the body of this tag will be skipped. |
| binding | false | false | java.lang.String | The value binding expression linking this component to a property in a backing bean |
| effect | false | false | java.lang.String | The Javascript Effect |
| visible | false | false | java.lang.String | Set the visibility of this component. When false CSS style is set to display:none |
| Variables | No Variables Defined. |
| |||||||
| FRAMES NO FRAMES | |||||||