NetUI Tag Library Documentation (Version 1.0.1)

netui
netui:select Tag

Renders an HTML <select> tag containing a set of selectable options.

Syntax

<netui:select
    [accessKey="string_accessKey"]
    dataSource="expression_datasource"
    [defaultValue="string_or_expression_default"]
    [dir="string_dir"]
    [disabled="boolean_disabled"]
    [lang="string_lang"]
    [multiple="boolean_multipleSelectEnabled"]
    [nullable="boolean_nullable"]
    [nullableOptionText="boolean_nullableOptionText"]
    [onBlur="string_onBlur"]
    [onChange="string_onChange"]
    [onClick="string_onClick"]
    [onDblClick="string_onDblClick"]
    [onFocus="string_onFocus"]
    [onKeyDown="string_onKeyDown"]
    [onKeyPress="string_onKeyPress"]
    [onKeyUp="string_onKeyUp"]
    [onMouseDown="string_onMouseDown"]
    [onMouseMove="string_onMouseMove"]
    [onMouseOut="string_onMouseOut"]
    [onMouseOver="string_onMouseOver"]
    [onMouseUp="string_onMouseUp"]
    [optionsDataSource="expression_options_datasource"]
    [repeater="boolean_repeater"]
    [repeatingOrder="string_order"]
    [size="integer_size"]
    [style="string_style"]
    [styleClass="string_styleClass"]
    [tabindex="string_tabIndex"]
    [tagId="string_tagId"]
    [title="string_title"] >
    ... JSP content ...
</netui:select>

Description

Renders an HTML <select> tag containing a set of selectable options.

The <netui:select> tag can generate a set of selectable options in two ways:

  1. they can be dynamically generated by pointing the <netui:select> tag at a String[] object or HashMap
  2. they can be statically generated by providing a set of children <netui:selectOption> tags

Dynamically Generated Options

You can dynamically generate a set of selectable options by pointing the <netui:select> tag at a String[].

    public String[] colors = {"red", "green", "blue", "orange", "pink", "aqua", "black", "brown", "tan"};

    public String[] getColors()
    {
        return colors;
    }

To point the <netui:select> tag at the String[] object use the optionsDataSource attribute.

    <netui:select dataSource="actionForm.selection"
                  optionsDataSource="${pageFlow.colors}"/>
Note that you can make the display value and the submitted value differ by pointing the optionsDataSource attribute of the <netui:select> tag at a HashMap object. (Any object that implements the Map interface will work.)
    public HashMap optionsMap = new HashMap();

    protected HashMap getOptionsMap()
    {
        return optionsMap;
    }

    protected void onCreate()
    {
        optionsMap.put("#ff3333", "red");
        optionsMap.put("#3333ff", "blue");
        optionsMap.put("#33ff33", "green");
    }

However, you cannot use a Map object if you choose to use the Select as a repeater (setting the attribute repeater="true").

Point the <netui:select> at the Map object using the optionsDataSource attribute.

    <netui:select dataSource="actionForm.selection"
                  optionsDataSource="${pageFlow.optionsMap}"/>
The following HTML will be generated.
    <select name="wlw-select_key:{actionForm.selection}">
        <option value="#3333ff">blue</option>
        <option value="#33ff33">green</option>
        <option value="#ff3333">red</option>
    </select>

Statically Generated Options

To statically generate selecable options, place a set of <netui:selectOption> tags inside the <netui:select> tag.

    <netui:select dataSource="actionForm.selection" size="5">
        <netui:selectOption value="red" />
        <netui:selectOption value="blue" />
        <netui:selectOption value="green" />
        <netui:selectOption value="yellow" />
        <netui:selectOption value="orange" />
    </netui:select>

Submitting Selections

A <netui:select> is submitted as a String or String[] object, depending on whether the multiple attribute is set to true. In the following example, the dataSource attribute points at a String[] object.

    </netui:select dataSource="actionForm.selections"...

In this case, the <netui:select> tag submits to a String[] field of a Form Bean.

    public static class SubmitForm extends FormData
    {
        private String[] selections;

        public void setSelections(String[] selections)
        {
            this.selections = selections;
        }

        public String[] getSelections()
        {
            return this.selections;
        }
    }

Use Select as a Repeater with Multiple Repeating Types

Optionally, use the <netui:select> tag as a repeater to render multiple options from the dataSource and defaultValue attributes as well as the optionsDataSource. The <netui:select> element can dynamically generate option elements for different repeating types of "option", "dataSource", "default", (optionsDataSource, dataSource, and defaultValue attributes respectively) and "null". The Select repeatingOrder attribute sets the order that repeating types are generated. The repeatingType attribute on the <netui:selectOption> tag identifies each of the types to be rendered.

Use JSTL boolean conditional tags with the <netui:selectOption> elements to help manage repeaters of different data types. For example, the dataSource could point to a String[] while the optionsDataSource points to an Object[] where each object has name and value fields...

    <netui:select dataSource="actionForm.selections"
                  optionsDataSource="${pageFlow.options}"
                  repeatingOrder="dataSource,option"
                  repeater="true" multiple="true">
        <c:if test="${container.metadata.dataSourceStage}">
            <netui:selectOption  repeatingType="dataSource" value="${container.item}">
                <netui:span value="${container.item}" />
            </netui:selectOption>
        </c:if>
        <c:if test="${container.metadata.optionStage}">
            <netui:selectOption  repeatingType="option" value="${container.item.name}">
                <netui:span value="${container.item.value}" />
            </netui:selectOption>
        </c:if>
    </netui:select>
 

Attributes
accessKey
Required: No  |   Type: char  |   Supports runtime evaluation / JSP Expression Language: Yes

The keyboard navigation key for the element. The following values are not recommended because they are often used by browsers: A, C, E, F, G, H, V, left arrow, and right arrow
dataSource
Required: Yes  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: No

The dataSource attribute determines both (1) the source of populating data for the tag and (2) the object to which the tag submits data.

For example, assume that the Controller file (= JPF file) contains a Form Bean with the property foo. Then the following <netui:textBox> tag will (1) draw populating data from the Form Bean's foo property and (2) submit user defined data to the same property.

    <netui:textBox dataSource="actionForm.foo" />

The dataSource attribute takes either a data binding expression or the name of a Form Bean property. In the above example, <netui:textBox dataSource="foo" /> would have the exactly same behavior.

When the tag is used to submit data, the data binding expression must refer to a Form Bean property. In cases where the tag is not used to submit data, but is used for displaying data only, the data binding expression need not refer to a Form Bean property. For example, assume that myIterativeData is a member variable on the Controller file ( = JPF file). The following <netui-data:repeater> tag draws its data from myIterativeData.

    <netui-data:repeater dataSource="pageFlow.myIterativeData">

defaultValue
Required: No  |   Type: Object  |   Supports runtime evaluation / JSP Expression Language: Yes

Use in <netui:checkBoxGroup>, <netui:checkBox>, <netui:radioButtonGroup>, and <netui:select> tags

Sets the preselected value or values.

The defaultValue attribute takes either a String literal or a data binding expression.

If the defaultValue attribute has a String value (or if the data binding expression points to a String), then a single value will be preselected.

If the defaultValue attribute points to a String[] object (or any object which can be iterated over), then multiple values will be preselected.

Use in <netui:textArea> and <netui:textBox> tags

Sets the initial display text.

The defaultValue attribute takes either a String literal or a data binding expression that points to a String.

dir
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

Specifies the direction of text. (LTR | RTL)
disabled
Required: No  |   Type: boolean  |   Supports runtime evaluation / JSP Expression Language: Yes

Set the disable state either with the literal "true" or "false" or with an expression.
lang
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

Sets the language code for the base language of an element's attribute values and text content.
multiple
Required: No  |   Type: boolean  |   Supports runtime evaluation / JSP Expression Language: Yes

Boolean. Whether or not multi-selection is enabled. If multiple selection is enabled, a null option will not be displayed, even if the nullable is set to true.
nullable
Required: No  |   Type: boolean  |   Supports runtime evaluation / JSP Expression Language: Yes

Boolean. Whether a option with the value null should be added to the bottom of the list. If <select> has the multiple attribute set to true, the null option won't be shown.
nullableOptionText
Required: No  |   Type: boolean  |   Supports runtime evaluation / JSP Expression Language: Yes

Boolean. If the nullable attribute is set to true, then the nullableOptionText attribute determines the display text of the null option. The default is to use the empty string, "", as the display text.
onBlur
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onBlur JavaScript event.
onChange
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onChange JavaScript event.
onClick
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onClick JavaScript event.
onDblClick
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onDblClick JavaScript event.
onFocus
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onFocus JavaScript event.
onKeyDown
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onKeyDown JavaScript event.
onKeyPress
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onKeyPress JavaScript event.
onKeyUp
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onKeyUp JavaScript event.
onMouseDown
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onMouseDown JavaScript event.
onMouseMove
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onMouseMove JavaScript event.
onMouseOut
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onMouseOut JavaScript event.
onMouseOver
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onMouseOver JavaScript event.
onMouseUp
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The onMouseUp JavaScript event.
optionsDataSource
Required: No  |   Type: Object  |   Supports runtime evaluation / JSP Expression Language: Yes

Sets the options datasource value (an expression).
repeater
Required: No  |   Type: boolean  |   Supports runtime evaluation / JSP Expression Language: Yes

Set whether repeating of contained options is on.
repeatingOrder
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

Define the order of options generated for a repeating Select. It must contain a comma separated string listing the order or the stages that the repeating types are processed. These values are "option", "dataSource", "default", and "null". For example,
    repeatingOrder="dataSource,option"
Then a <netui:selectOption> element could set the repeatingType attribute to "dataSource" while another is defined for "option".
size
Required: No  |   Type: int  |   Supports runtime evaluation / JSP Expression Language: Yes

The number of visible options
style
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

Specifies style information for the current element.
styleClass
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The style class (a style sheet selector).
tabindex
Required: No  |   Type: int  |   Supports runtime evaluation / JSP Expression Language: Yes

The tabIndex of the rendered HTML tag. This attribute determines the position of the tag in the sequence of page elements that the user may advance through by pressing the TAB key.
tagId
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

String value. Sets the id (or name) attribute of the rendered HTML tag. Note that the real id attribute rendered in the browser may be changed by the application container (for example, Portal containers may change the rendered id value to ensure the uniqueness of id's on the page). In this case, the real id rendered in the browser may be looked up through the JavaScript function lookupIdByTagId( tagId, tag ).

For example, assume that some tag's tagId attribute is set to foo.

    <netui:textBox tagId="foo" />

Then the following JavaScript function will return the real id attribute rendered in the browser:

    lookupIdByTagId( "foo", this )

To get a <netui:form> element and all of its children elements in JavaScript, use the same JavaScript function lookupIdByTagId( tagId, tag ). For example, assume that there is a <netui:form> whose tagId attribute is set to bar.

    <netui:form tagId="bar" >

Then the following JavaScript function will return the <netui:form> element and its children (packaged as an array).

    document[lookupIdByTagId( "bar", this )]

To retreive the value entered into a <netui:textBox> within the <netui:form> tag, use the following JavaScript expression.

    document[lookupIdByTagId("bar", this)][lookupIdByTagId("foo", this)].value

The second parameter ensures that the JavaScript function begins its search within the correct Portlet scope. Pass the JavaScript keyword this as the second parameter.

title
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

The title.

Example

The following sample uses the optionsDataSource attribute to reference a dynamically generated dropdown list.

    <netui:select dataSource="actionForm.selectedOption"
                  optionsDataSource="${actionForm.itemOptions}" />
 

Assume that the optionsDataSource attribute refers to a java.util.Map object. The Map object will be rendered as a series of <option> tags. HTML that is similar to the following will be rendered in the browser:

    <select name="wlw-select_key:{actionForm.itemOptions}">
        <option value="633">Aurora Bridge</option>
        <option value="631">FA-18 fighter jet</option>
        <option value="635">Space Needle</option>
        <option value="642">Thin Mints</option>
 	      ...
    </select>


Tag Information
Tag Classorg.apache.beehive.netui.tags.html.Select
TagExtraInfo ClassNone
Body ContentJSP
Display NameNone