Edit on GitHub << back to Tag Reference

# doubleselect

Please make sure you have read the Tag Syntax document and understand how tag attribute syntax works.

Note that the `doublelistkey` and `doublelistvalue` attribute will default to `key` and `value` respectively only when the `doublelist` attribute is evaluated to a Map or its descendant. Other thing else, will result in `doublelistkey` and `doublelistvalue` to be null and not used.

## Description

Renders two HTML select elements with second one changing displayed values depending on selected entry of first one.

## Attributes

#### Dynamic Attributes Allowed: false
#### Name | #### Required | #### Default | #### Evaluated | #### Type | #### Description
--- | --- | --- | --- | --- | ---
accesskey | false |  | false | String | Set the html accesskey attribute on rendered html element
cssClass | false |  | false | String | The css class to use for element
cssErrorClass | false |  | false | String | The css error class to use for element
cssErrorStyle | false |  | false | String | The css error style definitions for element to use
cssStyle | false |  | false | String | The css style definitions for element to use
disabled | false |  | false | String | Set the html disabled attribute on rendered html element
doubleAccesskey | false |  | false | String | Set the html accesskey attribute.
doubleCssClass | false |  | false | String | The css class for the second list
doubleCssStyle | false |  | false | String | The css style for the second list
doubleDisabled | false |  | false | String | Decides if a disable attribute should be added to the second list
doubleEmptyOption | false |  | false | String | Decides if the second list will add an empty option
doubleHeaderKey | false |  | false | String | The header key for the second list
doubleHeaderValue | false |  | false | String | The header value for the second list
doubleId | false |  | false | String | The id of the second list
doubleList | true |  | false | String | The second iterable source to populate from.
doubleListCssClass | false |  | false | String | Property of second list objects to get css class from
doubleListCssStyle | false |  | false | String | Property of second list objects to get css style from
doubleListKey | false |  | false | String | The key expression to use for second list
doubleListTitle | false |  | false | String | Property of second list objects to get title from
doubleListValue | false |  | false | String | The value expression to use for second list
doubleMultiple | false |  | false | String | Decides if multiple attribute should be set on the second list
doubleName | true |  | false | String | The name for complete component
doubleOnblur | false |  | false | String | Set the onblur attribute of the second list
doubleOnchange | false |  | false | String | Set the onchange attribute of the second list
doubleOnclick | false |  | false | String | Set the onclick attribute of the second list
doubleOndblclick | false |  | false | String | Set the ondbclick attribute of the second list
doubleOnfocus | false |  | false | String | Set the onfocus attribute of the second list
doubleOnkeydown | false |  | false | String | Set the onkeydown attribute of the second list
doubleOnkeypress | false |  | false | String | Set the onkeypress attribute of the second list
doubleOnkeyup | false |  | false | String | Set the onkeyup attribute of the second list
doubleOnmousedown | false |  | false | String | Set the onmousedown attribute of the second list
doubleOnmousemove | false |  | false | String | Set the onmousemove attribute of the second list
doubleOnmouseout | false |  | false | String | Set the onmouseout attribute of the second list
doubleOnmouseover | false |  | false | String | Set the onmouseover attribute of the second list
doubleOnmouseup | false |  | false | String | Set the onmouseup attribute of the second list
doubleOnselect | false |  | false | String | Set the onselect attribute of the second list
doubleSize | false |  | false | String | Set the size attribute of the second list
doubleValue | false |  | false | String | The value expression for complete component
emptyOption | false | false | false | Boolean | Decides of an empty option is to be inserted in the second list
errorPosition | false |  | false | String | Define error position of form element (top|bottom)
formName | false |  | false | String | The form name this component resides in and populates to
headerKey | false |  | false | String | Set the header key of the second list. Must not be empty! '-1' and '' is correct, '' is bad.
headerValue | false |  | false | String | Set the header value of the second list
id | false |  | false | String | HTML id attribute
javascriptTooltip | false | false | false | Boolean | Use JavaScript to generate tooltips
key | false |  | false | String | Set the key (name, value, label) for this particular component
label | false |  | false | String | Label expression used for rendering an element specific label
labelPosition | false |  | false | String | Define label position of form element (top/left)
labelSeparator | false | : | false | String | String that will be appended to the label
list | true |  | false | String | Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.
listCssClass | false |  | false | String | Property of list objects to get css class from
listCssStyle | false |  | false | String | Property of list objects to get css style from
listKey | false |  | false | String | Property of list objects to get field value from
listLabelKey | false |  | false | String | Property of list objects to be used to lookup for localised version of field label
listTitle | false |  | false | String | Property of list objects to get title from
listValue | false |  | false | String | Property of list objects to get field content from
listValueKey | false |  | false | String | Property of list objects to get field value label from
multiple | false |  | false | String | Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute.
name | false |  | false | String | The name to set for element
onblur | false |  | false | String | Set the html onblur attribute on rendered html element
onchange | false |  | false | String | Set the html onchange attribute on rendered html element
onclick | false |  | false | String | Set the html onclick attribute on rendered html element
ondblclick | false |  | false | String | Set the html ondblclick attribute on rendered html element
onfocus | false |  | false | String | Set the html onfocus attribute on rendered html element
onkeydown | false |  | false | String | Set the html onkeydown attribute on rendered html element
onkeypress | false |  | false | String | Set the html onkeypress attribute on rendered html element
onkeyup | false |  | false | String | Set the html onkeyup attribute on rendered html element
onmousedown | false |  | false | String | Set the html onmousedown attribute on rendered html element
onmousemove | false |  | false | String | Set the html onmousemove attribute on rendered html element
onmouseout | false |  | false | String | Set the html onmouseout attribute on rendered html element
onmouseover | false |  | false | String | Set the html onmouseover attribute on rendered html element
onmouseup | false |  | false | String | Set the html onmouseup attribute on rendered html element
onselect | false |  | false | String | Set the html onselect attribute on rendered html element
performClearTagStateForTagPoolingServers | false | false | false | Boolean | Whether to clear all tag state during doEndTag() processing (if applicable)
requiredLabel | false | false | false | Boolean | If set to true, the rendered element will indicate that input is required
requiredPosition | false |  | false | String | Define required position of required form element (left|right)
size | false |  | false | Integer | Size of the element box (# of elements to show)
style | false |  | false | String | The css style definitions for element to use - it's an alias of cssStyle attribute.
tabindex | false |  | false | String | Set the html tabindex attribute on rendered html element
template | false |  | false | String | The template (other than default) to use for rendering the element
templateDir | false |  | false | String | The template directory.
theme | false |  | false | String | The theme (other than default) to use for rendering the element
title | false |  | false | String | Set the html title attribute on rendered html element
tooltip | false |  | false | String | Set the tooltip of this particular component
tooltipConfig | false |  | false | String | Deprecated. Use individual tooltip configuration attributes instead.
tooltipCssClass | false | StrutsTTClassic | false | String | CSS class applied to JavaScrip tooltips
tooltipDelay | false | Classic | false | String | Delay in milliseconds, before showing JavaScript tooltips
tooltipIconPath | false |  | false | String | Icon path used for image that will have the tooltip
value | false |  | false | String | Preset the value of input element.

## Dynamic attributes

The tag supports dynamic attributes but if you want to add the attributes to the second control which is generated by the tag use the `second-` prefix as below:

    <s:doubleselect ... second-control-id="id2"/>

The prefix will be stripped while generating the second control.

## Examples

     <s:doubleselect label="doubleselect test1" name="menu" list="{'fruit','other'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />
     <s:doubleselect label="doubleselect test2" name="menu" list="#{'fruit':'Nice Fruits', 'other':'Other Dishes'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />

Follow @x