org.apache.struts2.views.jsp.ui

## Class OptionTransferSelectTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - javax.servlet.jsp.tagext.BodyTagSupport
    - - org.apache.struts2.views.jsp.StrutsBodyTagSupport
      - - org.apache.struts2.views.jsp.ComponentTagSupport
        - - org.apache.struts2.views.jsp.ui.AbstractUITag
          - - org.apache.struts2.views.jsp.ui.AbstractListTag
            - - org.apache.struts2.views.jsp.ui.AbstractRequiredListTag
              - - org.apache.struts2.views.jsp.ui.AbstractDoubleListTag
                - - org.apache.struts2.views.jsp.ui.OptionTransferSelectTag

- All Implemented Interfaces:
    Serializable, javax.servlet.jsp.tagext.BodyTag, javax.servlet.jsp.tagext.DynamicAttributes, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag

      public class OptionTransferSelectTag
      extends AbstractDoubleListTag

  OptionTransferSelect jsp tag.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected String` | `addAllToLeftLabel`
    `protected String` | `addAllToLeftOnclick`
    `protected String` | `addAllToRightLabel`
    `protected String` | `addAllToRightOnclick`
    `protected String` | `addToLeftLabel`
    `protected String` | `addToLeftOnclick`
    `protected String` | `addToRightLabel`
    `protected String` | `addToRightOnclick`
    `protected String` | `allowAddAllToLeft`
    `protected String` | `allowAddAllToRight`
    `protected String` | `allowAddToLeft`
    `protected String` | `allowAddToRight`
    `protected String` | `allowSelectAll`
    `protected String` | `allowUpDownOnLeft`
    `protected String` | `allowUpDownOnRight`
    `protected String` | `buttonCssClass`
    `protected String` | `buttonCssStyle`
    `protected String` | `leftDownLabel`
    `protected String` | `leftTitle`
    `protected String` | `leftUpLabel`
    `protected String` | `rightDownLabel`
    `protected String` | `rightTitle`
    `protected String` | `rightUpLabel`
    `protected String` | `selectAllLabel`
    `protected String` | `selectAllOnclick`
    `protected String` | `upDownOnLeftOnclick`
    `protected String` | `upDownOnRightOnclick`

    - ### Fields inherited from class org.apache.struts2.views.jsp.ui.AbstractDoubleListTag

      `doubleAccesskey, doubleCssClass, doubleCssStyle, doubleDisabled, doubleEmptyOption, doubleHeaderKey, doubleHeaderValue, doubleId, doubleList, doubleListCssClass, doubleListCssStyle, doubleListKey, doubleListTitle, doubleListValue, doubleMultiple, doubleName, doubleOnblur, doubleOnchange, doubleOnclick, doubleOndblclick, doubleOnfocus, doubleOnkeydown, doubleOnkeypress, doubleOnkeyup, doubleOnmousedown, doubleOnmousemove, doubleOnmouseout, doubleOnmouseover, doubleOnmouseup, doubleOnselect, doubleSize, doubleValue, emptyOption, formName, headerKey, headerValue, multiple, size`

    - ### Fields inherited from class org.apache.struts2.views.jsp.ui.AbstractListTag

      `list, listCssClass, listCssStyle, listKey, listLabelKey, listTitle, listValue, listValueKey`

    - ### Fields inherited from class org.apache.struts2.views.jsp.ui.AbstractUITag

      `accesskey, cssClass, cssErrorClass, cssErrorStyle, cssStyle, disabled, dynamicAttributes, errorPosition, id, javascriptTooltip, key, label, labelPosition, labelSeparator, name, onblur, onchange, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup, onselect, requiredLabel, requiredPosition, tabindex, template, templateDir, theme, title, tooltip, tooltipConfig, tooltipCssClass, tooltipDelay, tooltipIconPath, value`

    - ### Fields inherited from class org.apache.struts2.views.jsp.ComponentTagSupport

      `component`

    - ### Fields inherited from class javax.servlet.jsp.tagext.BodyTagSupport

      `bodyContent`

    - ### Fields inherited from class javax.servlet.jsp.tagext.TagSupport

      `pageContext`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.BodyTag

      `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.IterationTag

      `EVAL_BODY_AGAIN`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.Tag

      `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OptionTransferSelectTag()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `clearTagStateForTagPoolingServers()` Provide a mechanism to clear tag state, to handle servlet container JSP tag pooling behaviour with some servers, such as Glassfish.
    `String` | `getAddAllToLeftLabel()`
    `String` | `getAddAllToLeftOnclick()`
    `String` | `getAddAllToRightLabel()`
    `String` | `getAddAllToRightOnclick()`
    `String` | `getAddToLeftLabel()`
    `String` | `getAddToLeftOnclick()`
    `String` | `getAddToRightLabel()`
    `String` | `getAddToRightOnclick()`
    `String` | `getAllowAddAllToLeft()`
    `String` | `getAllowAddAllToRight()`
    `String` | `getAllowAddToLeft()`
    `String` | `getAllowAddToRight()`
    `String` | `getAllowSelectAll()`
    `String` | `getAllowUpDownOnLeft()`
    `String` | `getAllowUpDownOnRight()`
    `Component` | `getBean(ValueStack stack, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)`
    `String` | `getButtonCssClass()`
    `String` | `getButtonCssStyle()`
    `String` | `getLeftDownLabel()`
    `String` | `getLeftTitle()`
    `String` | `getLeftUpLabel()`
    `String` | `getRightDownLabel()`
    `String` | `getRightTitle()`
    `String` | `getRightUpLabel()`
    `String` | `getSelectAllLabel()`
    `String` | `getSelectAllOnclick()`
    `String` | `getUpDownOnLeftOnclick()`
    `String` | `getUpDownOnRightOnclick()`
    `protected void` | `populateParams()` Define method to populate component state based on the Tag parameters.
    `void` | `setAddAllToLeftLabel(String addAllToLeftLabel)`
    `void` | `setAddAllToLeftOnclick(String addAllToLeftOnclick)`
    `void` | `setAddAllToRightLabel(String addAllToRightLabel)`
    `void` | `setAddAllToRightOnclick(String addAllToRightOnclick)`
    `void` | `setAddToLeftLabel(String addToLeftLabel)`
    `void` | `setAddToLeftOnclick(String addToLeftOnclick)`
    `void` | `setAddToRightLabel(String addToRightLabel)`
    `void` | `setAddToRightOnclick(String addToRightOnclick)`
    `void` | `setAllowAddAllToLeft(String allowAddAllToLeft)`
    `void` | `setAllowAddAllToRight(String allowAddAllToRight)`
    `void` | `setAllowAddToLeft(String allowAddToLeft)`
    `void` | `setAllowAddToRight(String allowAddToRight)`
    `void` | `setAllowSelectAll(String allowSelectAll)`
    `void` | `setAllowUpDownOnLeft(String allowUpDownOnLeft)`
    `void` | `setAllowUpDownOnRight(String allowUpDownOnRight)`
    `void` | `setButtonCssClass(String buttonCssId)`
    `void` | `setButtonCssStyle(String buttonCssStyle)`
    `void` | `setLeftDownLabel(String leftDownLabel)`
    `void` | `setLeftTitle(String leftTitle)`
    `void` | `setLeftUpLabel(String leftUpLabel)`
    `void` | `setPerformClearTagStateForTagPoolingServers(boolean performClearTagStateForTagPoolingServers)` Request that the tag state be cleared during `StrutsBodyTagSupport.doEndTag()` processing, which may help with certain edge cases with tag logic running on servers that implement JSP Tag Pooling.
    `void` | `setRightDownLabel(String rightDownLabel)`
    `void` | `setRightTitle(String rightTitle)`
    `void` | `setRightUpLabel(String rightUpLabel)`
    `void` | `setSelectAllLabel(String selectAllLabel)`
    `void` | `setSelectAllOnclick(String selectAllOnclick)`
    `void` | `setUpDownOnLeftOnclick(String upDownOnLeftOnclick)`
    `void` | `setUpDownOnRightOnclick(String upDownOnRightOnclick)`

    - ### Methods inherited from class org.apache.struts2.views.jsp.ui.AbstractDoubleListTag

      `getDoubleCssClass, getDoubleCssStyle, getDoubleDisabled, getDoubleEmptyOption, getDoubleHeaderKey, getDoubleHeaderValue, getDoubleId, getDoubleList, getDoubleListKey, getDoubleListValue, getDoubleMultiple, getDoubleName, getDoubleOnblur, getDoubleOnchange, getDoubleOnclick, getDoubleOndblclick, getDoubleOnfocus, getDoubleOnkeydown, getDoubleOnkeypress, getDoubleOnkeyup, getDoubleOnmousedown, getDoubleOnmousemove, getDoubleOnmouseout, getDoubleOnmouseover, getDoubleOnmouseup, getDoubleOnselect, getDoubleSize, getDoubleValue, getFormName, setDoubleAccesskey, setDoubleCssClass, setDoubleCssStyle, setDoubleDisabled, setDoubleEmptyOption, setDoubleHeaderKey, setDoubleHeaderValue, setDoubleId, setDoubleList, setDoubleListCssClass, setDoubleListCssStyle, setDoubleListKey, setDoubleListTitle, setDoubleListValue, setDoubleMultiple, setDoubleName, setDoubleOnblur, setDoubleOnchange, setDoubleOnclick, setDoubleOndblclick, setDoubleOnfocus, setDoubleOnkeydown, setDoubleOnkeypress, setDoubleOnkeyup, setDoubleOnmousedown, setDoubleOnmousemove, setDoubleOnmouseout, setDoubleOnmouseover, setDoubleOnmouseup, setDoubleOnselect, setDoubleSize, setDoubleValue, setEmptyOption, setFormName, setHeaderKey, setHeaderValue, setMultiple, setSize`

    - ### Methods inherited from class org.apache.struts2.views.jsp.ui.AbstractListTag

      `setList, setListCssClass, setListCssStyle, setListKey, setListLabelKey, setListTitle, setListValue, setListValueKey`

    - ### Methods inherited from class org.apache.struts2.views.jsp.ui.AbstractUITag

      `setAccesskey, setClass, setCssClass, setCssErrorClass, setCssErrorStyle, setCssStyle, setDisabled, setDynamicAttribute, setErrorPosition, setId, setJavascriptTooltip, setKey, setLabel, setLabelPosition, setLabelSeparator, setName, setOnblur, setOnchange, setOnclick, setOndblclick, setOnfocus, setOnkeydown, setOnkeypress, setOnkeyup, setOnmousedown, setOnmousemove, setOnmouseout, setOnmouseover, setOnmouseup, setOnselect, setRequiredLabel, setRequiredPosition, setStyle, setTabindex, setTemplate, setTemplateDir, setTheme, setTitle, setTooltip, setTooltipConfig, setTooltipCssClass, setTooltipDelay, setTooltipIconPath, setValue`

    - ### Methods inherited from class org.apache.struts2.views.jsp.ComponentTagSupport

      `doEndTag, doStartTag, getComponent, populatePerformClearTagStateForTagPoolingServersParam`

    - ### Methods inherited from class org.apache.struts2.views.jsp.StrutsBodyTagSupport

      `findString, findValue, findValue, getBody, getPerformClearTagStateForTagPoolingServers, getStack, release, toString`

    - ### Methods inherited from class javax.servlet.jsp.tagext.BodyTagSupport

      `doAfterBody, doInitBody, getBodyContent, getPreviousOut, setBodyContent`

    - ### Methods inherited from class javax.servlet.jsp.tagext.TagSupport

      `findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setPageContext, setParent, setValue`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface javax.servlet.jsp.tagext.Tag

      `getParent, setPageContext, setParent`

- - ### Field Detail

    - #### allowAddToLeft

          protected String allowAddToLeft

    - #### allowAddToRight

          protected String allowAddToRight

    - #### allowAddAllToLeft

          protected String allowAddAllToLeft

    - #### allowAddAllToRight

          protected String allowAddAllToRight

    - #### allowSelectAll

          protected String allowSelectAll

    - #### allowUpDownOnLeft

          protected String allowUpDownOnLeft

    - #### allowUpDownOnRight

          protected String allowUpDownOnRight

    - #### leftTitle

          protected String leftTitle

    - #### rightTitle

          protected String rightTitle

    - #### buttonCssClass

          protected String buttonCssClass

    - #### buttonCssStyle

          protected String buttonCssStyle

    - #### addToLeftLabel

          protected String addToLeftLabel

    - #### addToRightLabel

          protected String addToRightLabel

    - #### addAllToLeftLabel

          protected String addAllToLeftLabel

    - #### addAllToRightLabel

          protected String addAllToRightLabel

    - #### selectAllLabel

          protected String selectAllLabel

    - #### leftUpLabel

          protected String leftUpLabel

    - #### leftDownLabel

          protected String leftDownLabel

    - #### rightUpLabel

          protected String rightUpLabel

    - #### rightDownLabel

          protected String rightDownLabel

    - #### addToLeftOnclick

          protected String addToLeftOnclick

    - #### addToRightOnclick

          protected String addToRightOnclick

    - #### addAllToLeftOnclick

          protected String addAllToLeftOnclick

    - #### addAllToRightOnclick

          protected String addAllToRightOnclick

    - #### selectAllOnclick

          protected String selectAllOnclick

    - #### upDownOnLeftOnclick

          protected String upDownOnLeftOnclick

    - #### upDownOnRightOnclick

          protected String upDownOnRightOnclick

  - ### Constructor Detail

    - #### OptionTransferSelectTag

          public OptionTransferSelectTag()

  - ### Method Detail

    - #### getBean

          public Component getBean(ValueStack stack,
                                   javax.servlet.http.HttpServletRequest req,
                                   javax.servlet.http.HttpServletResponse res)

      Specified by:
        `getBean` in class `ComponentTagSupport`

    - #### populateParams

          protected void populateParams()

      Description copied from class: `ComponentTagSupport`
      Define method to populate component state based on the Tag parameters.

      Descendants should override this method for custom behaviour, but should always call the ancestor method when doing so.

      Overrides:
        `populateParams` in class `AbstractDoubleListTag`

    - #### getAddAllToLeftLabel

          public String getAddAllToLeftLabel()

    - #### setAddAllToLeftLabel

          public void setAddAllToLeftLabel(String addAllToLeftLabel)

    - #### getAddAllToRightLabel

          public String getAddAllToRightLabel()

    - #### setAddAllToRightLabel

          public void setAddAllToRightLabel(String addAllToRightLabel)

    - #### getAddToLeftLabel

          public String getAddToLeftLabel()

    - #### setAddToLeftLabel

          public void setAddToLeftLabel(String addToLeftLabel)

    - #### getAddToRightLabel

          public String getAddToRightLabel()

    - #### setAddToRightLabel

          public void setAddToRightLabel(String addToRightLabel)

    - #### getAllowAddAllToLeft

          public String getAllowAddAllToLeft()

    - #### setAllowAddAllToLeft

          public void setAllowAddAllToLeft(String allowAddAllToLeft)

    - #### getAllowAddAllToRight

          public String getAllowAddAllToRight()

    - #### setAllowAddAllToRight

          public void setAllowAddAllToRight(String allowAddAllToRight)

    - #### getAllowAddToLeft

          public String getAllowAddToLeft()

    - #### setAllowAddToLeft

          public void setAllowAddToLeft(String allowAddToLeft)

    - #### getAllowAddToRight

          public String getAllowAddToRight()

    - #### setAllowAddToRight

          public void setAllowAddToRight(String allowAddToRight)

    - #### getAllowUpDownOnLeft

          public String getAllowUpDownOnLeft()

    - #### setAllowUpDownOnLeft

          public void setAllowUpDownOnLeft(String allowUpDownOnLeft)

    - #### getAllowUpDownOnRight

          public String getAllowUpDownOnRight()

    - #### setAllowUpDownOnRight

          public void setAllowUpDownOnRight(String allowUpDownOnRight)

    - #### getLeftUpLabel

          public String getLeftUpLabel()

    - #### setLeftUpLabel

          public void setLeftUpLabel(String leftUpLabel)

    - #### getLeftDownLabel

          public String getLeftDownLabel()

    - #### setLeftDownLabel

          public void setLeftDownLabel(String leftDownLabel)

    - #### getRightUpLabel

          public String getRightUpLabel()

    - #### setRightUpLabel

          public void setRightUpLabel(String rightUpLabel)

    - #### getRightDownLabel

          public String getRightDownLabel()

    - #### setRightDownLabel

          public void setRightDownLabel(String rightDownLabel)

    - #### getLeftTitle

          public String getLeftTitle()

    - #### setLeftTitle

          public void setLeftTitle(String leftTitle)

    - #### getRightTitle

          public String getRightTitle()

    - #### setRightTitle

          public void setRightTitle(String rightTitle)

    - #### setAllowSelectAll

          public void setAllowSelectAll(String allowSelectAll)

    - #### getAllowSelectAll

          public String getAllowSelectAll()

    - #### setSelectAllLabel

          public void setSelectAllLabel(String selectAllLabel)

    - #### getSelectAllLabel

          public String getSelectAllLabel()

    - #### setButtonCssClass

          public void setButtonCssClass(String buttonCssId)

    - #### getButtonCssClass

          public String getButtonCssClass()

    - #### setButtonCssStyle

          public void setButtonCssStyle(String buttonCssStyle)

    - #### getButtonCssStyle

          public String getButtonCssStyle()

    - #### getAddAllToLeftOnclick

          public String getAddAllToLeftOnclick()

    - #### setAddAllToLeftOnclick

          public void setAddAllToLeftOnclick(String addAllToLeftOnclick)

    - #### getAddAllToRightOnclick

          public String getAddAllToRightOnclick()

    - #### setAddAllToRightOnclick

          public void setAddAllToRightOnclick(String addAllToRightOnclick)

    - #### getAddToLeftOnclick

          public String getAddToLeftOnclick()

    - #### setAddToLeftOnclick

          public void setAddToLeftOnclick(String addToLeftOnclick)

    - #### getAddToRightOnclick

          public String getAddToRightOnclick()

    - #### setAddToRightOnclick

          public void setAddToRightOnclick(String addToRightOnclick)

    - #### getUpDownOnLeftOnclick

          public String getUpDownOnLeftOnclick()

    - #### setUpDownOnLeftOnclick

          public void setUpDownOnLeftOnclick(String upDownOnLeftOnclick)

    - #### getUpDownOnRightOnclick

          public String getUpDownOnRightOnclick()

    - #### setUpDownOnRightOnclick

          public void setUpDownOnRightOnclick(String upDownOnRightOnclick)

    - #### setSelectAllOnclick

          public void setSelectAllOnclick(String selectAllOnclick)

    - #### getSelectAllOnclick

          public String getSelectAllOnclick()

    - #### setPerformClearTagStateForTagPoolingServers

          public void setPerformClearTagStateForTagPoolingServers(boolean performClearTagStateForTagPoolingServers)

      Description copied from class: `StrutsBodyTagSupport`
      Request that the tag state be cleared during `StrutsBodyTagSupport.doEndTag()` processing, which may help with certain edge cases with tag logic running on servers that implement JSP Tag Pooling. Note: Even though the Tag classes extend this class `StrutsBodyTagSupport`, and this method `StrutsBodyTagSupport.setPerformClearTagStateForTagPoolingServers(boolean)` exists in the method hierarchy, the JSP processing requires us to explicitly override it in every Tag class in order for the Tag handler method to be visible to the JSP processing. Defining a setter in the superclass alone is insufficient (results in "Cannot find a setter method for the attribute").

      See `StrutsBodyTagSupport.clearTagStateForTagPoolingServers()` for additional details. Warning: Setting this value to true may allow for the desired behaviour, but doing so may violate the JSP specification. Set to true at your own risk.

      Overrides:
        `setPerformClearTagStateForTagPoolingServers` in class `AbstractDoubleListTag`
      Parameters:
        `performClearTagStateForTagPoolingServers` - true if tag state should be cleared, false otherwise.

    - #### clearTagStateForTagPoolingServers

          protected void clearTagStateForTagPoolingServers()

      Description copied from class: `StrutsBodyTagSupport`
      Provide a mechanism to clear tag state, to handle servlet container JSP tag pooling behaviour with some servers, such as Glassfish.

      Usage: Override this method in descendant classes to clear any state that might cause issues should the servlet container re-use a cached instance of the tag object. If the descendant class does not declare any new field members then it should not be strictly necessary to call this method there. Typically that means calling the ancestor's `ComponentTagSupport.clearTagStateForTagPoolingServers()` method first, then resetting instance variables at the current level to their default state.

      Note: If the descendant overrides `StrutsBodyTagSupport.doEndTag()`, and does not call super.doEndTag(), then the descendant should call this method in the descendant doEndTag() method to ensure consistent clearing of tag state.

      Overrides:
        `clearTagStateForTagPoolingServers` in class `AbstractDoubleListTag`

Copyright © 2000–2026 Apache Software Foundation. All rights reserved.