Edit on GitHub << back to Tag Reference

# optiontransferselect

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

Create a option transfer select component which is basically two `<select ...>` tag with buttons in the middle of them allowing options in each of the `<select ...>` to be moved between themselves. Will auto-select all its elements upon its containing form submission.

> NOTE: The `id` and `doubleId` need not be supplied as they will generated provided that the `optiontransferselect` tag is being used in a form tag. The generated `id` and `doubleId` will be `<form_id>_<optiontransferselect_name>` and `<form_id>_<optiontransferselect_doubleName>` respectively.

Renders an input form

## Attributes

#### Dynamic Attributes Allowed: false
#### Name | #### Required | #### Default | #### Evaluated | #### Type | #### Description
--- | --- | --- | --- | --- | ---
accesskey | false |  | false | String | Set the html accesskey attribute on rendered html element
addAllToLeftLabel | false |  | false | String | Set Add To Left button label
addAllToLeftOnclick | false |  | false | String | Javascript to run after Add All To Left button pressed
addAllToRightLabel | false |  | false | String | Set Add All To Right button label
addAllToRightOnclick | false |  | false | String | Javascript to run after Add All To Right button pressed
addToLeftLabel | false |  | false | String | Set Add To Left button label
addToLeftOnclick | false |  | false | String | Javascript to run after Add To Left button pressed
addToRightLabel | false |  | false | String | Set Add To Right button label
addToRightOnclick | false |  | false | String | Javascript to run after Add To Right button pressed
allowAddAllToLeft | false |  | false | String | Enable Add All To Left button
allowAddAllToRight | false |  | false | String | Enable Add All To Right button
allowAddToLeft | false |  | false | String | Enable Add To Left button
allowAddToRight | false |  | false | String | Enable Add To Right button
allowSelectAll | false |  | false | String | Enable Select All button
allowUpDownOnLeft | false |  | false | String | Enable up / down on the left side
allowUpDownOnRight | false |  | false | String | Enable up / down on the right side
buttonCssClass | false |  | false | String | Set buttons css class
buttonCssStyle | false |  | false | String | Set button css style
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
leftDownLabel | false |  | false | String | Down label for the left side.
leftTitle | false |  | false | String | Set Left title
leftUpLabel | false |  | false | String | Up label for the left side
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)
rightDownLabel | false |  | false | String | Down label for the left side.
rightTitle | false |  | false | String | Set Right title
rightUpLabel | false |  | false | String | Up label for the right side.
selectAllLabel | false |  | false | String | Set Select All button label
selectAllOnclick | false |  | false | String | Javascript to run after Select All button pressed
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
upDownOnLeftOnclick | false |  | false | String | Javascript to run after up / down on the left side buttons pressed
upDownOnRightOnclick | false |  | false | String | Javascript to run after up / down on the right side buttons pressed
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 right control which is generated by the tag use the `right-` prefix as below:

    <s:ioptiontransferselect ... right-control-id="id2"/>

The prefix will be stripped while generating the second control.

## Examples

Minimum example

    <s:optiontransferselect
         label="Favourite Cartoons Characters"
         name="leftSideCartoonCharacters"
         list="{'Popeye', 'He-Man', 'Spiderman'}"
         doubleName="rightSideCartoonCharacters"
         doubleList="{'Superman', 'Mickey Mouse', 'Donald Duck'}"
     />

Possible example

    <s:optiontransferselect
        label="Favourite Cartoons Characters"
        name="leftSideCartoonCharacters"
        leftTitle="Left Title"
        rightTitle="Right Title"
        list="{'Popeye', 'He-Man', 'Spiderman'}"
        multiple="true"
        headerKey="headerKey"
        headerValue="--- Please Select ---"
        emptyOption="true"
        doubleList="{'Superman', 'Mickey Mouse', 'Donald Duck'}"
        doubleName="rightSideCartoonCharacters"
        doubleHeaderKey="doubleHeaderKey"
        doubleHeaderValue="--- Please Select ---"
        doubleEmptyOption="true"
        doubleMultiple="true"
    />