Package org.apache.struts2.components

# Class Select

java.lang.Object
org.apache.struts2.components.Component
org.apache.struts2.components.UIBean
org.apache.struts2.components.ListUIBean
org.apache.struts2.components.Select

Direct Known Subclasses:
  `UpDownSelect`

public class Select extends ListUIBean
Render an HTML input tag of type select.

Examples

     <s:select label="Pets"
            name="petIds"
            list="petDao.pets"
            listKey="id"
            listValue="name"
            multiple="true"
            size="3"
            required="true"
            value="%{petDao.pets.{id}}"
     />

     <s:select label="Months"
            name="months"
            headerKey="-1" headerValue="Select Month"
            list="#{'01':'Jan', '02':'Feb', [...]}"
            value="selectedMonth"
            required="true"
     />

     // The month id (01, 02, ...) returned by the getSelectedMonth() call
     // against the stack will be auto-selected

Note: For any of the tags that use lists (select probably being the most ubiquitous), which uses the OGNL list notation (see the "months" example above), it should be noted that the map key created (in the months example, the '01', '02', etc.) is typed. '1' is a char, '01' is a String, "1" is a String. This is important since if the value returned by your "value" attribute is NOT the same type as the key in the "list" attribute, they WILL NOT MATCH, even though their String values may be equivalent. If they don't match, nothing in your list will be auto-selected.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `emptyOption`
  `protected String`
  `headerKey`
  `protected String`
  `headerValue`
  `protected String`
  `multiple`
  `protected String`
  `size`
  `static final String`
  `TEMPLATE`

  ### Fields inherited from class org.apache.struts2.components.ListUIBean

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

  ### Fields inherited from class org.apache.struts2.components.UIBean

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

  ### Fields inherited from class org.apache.struts2.components.Component

  `actionMapper, attributes, COMPONENT_STACK, devMode, escapeHtmlBody, performClearTagStateForTagPoolingServers, stack, standardAttributesMap, throwExceptionOnELFailure`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Select(ValueStack stack, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `evaluateExtraParams()`
  `protected String`
  `getDefaultTemplate()`
  A contract that requires each concrete UI Tag to specify which template should be used as a default.
  `void`
  `setEmptyOption(String emptyOption)`
  `void`
  `setHeaderKey(String headerKey)`
  `void`
  `setHeaderValue(String headerValue)`
  `void`
  `setMultiple(String multiple)`
  `void`
  `setSize(String size)`

  ### Methods inherited from class org.apache.struts2.components.ListUIBean

  `contains, getValueClassType, setList, setListCssClass, setListCssStyle, setListKey, setListLabelKey, setListTitle, setListValue, setListValueKey, setThrowExceptionOnNullValueAttribute`

  ### Methods inherited from class org.apache.struts2.components.UIBean

  `addFormParameter, applyValueParameter, buildTemplateName, copyAttributes, enableAncestorFormCustomOnsubmit, end, ensureAttributeSafelyNotEscaped, escape, evaluateNameValue, evaluateParams, getId, getTemplate, getTemplateDir, getTheme, getTooltipConfig, lazyEvaluation, mergeTemplate, populateComponentHtmlId, setAccesskey, setCssClass, setCssErrorClass, setCssErrorStyle, setCssStyle, setDefaultTemplateDir, setDefaultUITheme, setDisabled, setDynamicAttributes, setErrorPosition, setId, setJavascriptTooltip, setKey, setLabel, setLabelPosition, setLabelSeparator, setName, setOnblur, setOnchange, setOnclick, setOndblclick, setOnfocus, setOnkeydown, setOnkeypress, setOnkeyup, setOnmousedown, setOnmousemove, setOnmouseout, setOnmouseover, setOnmouseup, setOnselect, setRequiredLabel, setRequiredPosition, setStaticContentPath, setStyle, setTabindex, setTemplate, setTemplateDir, setTemplateEngineManager, setTheme, setTitle, setTooltip, setTooltipConfig, setTooltipCssClass, setTooltipDelay, setTooltipIconPath, setUIThemeExpansionToken, setValue`

  ### Methods inherited from class org.apache.struts2.components.Component

  `addAllAttributes, addParameter, completeExpression, determineActionURL, determineNamespace, end, escapeHtmlBody, fieldError, findAncestor, findString, findString, findValue, findValue, findValue, getAttributes, getComponentStack, getNamespace, getPerformClearTagStateForTagPoolingServers, getStack, getStandardAttributes, isAcceptableExpression, isValidTagAttribute, popComponentStack, setActionMapper, setDevMode, setEscapeHtmlBody, setNotExcludedAcceptedPatterns, setPerformClearTagStateForTagPoolingServers, setThrowExceptionsOnELFailure, setUrlHelper, start, stripExpression, toString, usesBody`

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

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

- ## Field Details

  - ### TEMPLATE

    public static final String TEMPLATE
    See Also:
      - Constant Field Values

  - ### emptyOption

    protected String emptyOption

  - ### headerKey

    protected String headerKey

  - ### headerValue

    protected String headerValue

  - ### multiple

    protected String multiple

  - ### size

    protected String size

- ## Constructor Details

  - ### Select

    public Select(ValueStack stack, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)

- ## Method Details

  - ### getDefaultTemplate

    protected String getDefaultTemplate()
    Description copied from class: `UIBean`
    A contract that requires each concrete UI Tag to specify which template should be used as a default. For example, the CheckboxTab might return "checkbox.vm" while the RadioTag might return "radio.vm". This value not begin with a '/' unless you intend to make the path absolute rather than relative to the current theme.
    Specified by:
      `getDefaultTemplate` in class `UIBean`
    Returns:
      The name of the template to be used as the default.

  - ### evaluateExtraParams

    public void evaluateExtraParams()
    Overrides:
      `evaluateExtraParams` in class `ListUIBean`

  - ### setEmptyOption

    public void setEmptyOption(String emptyOption)

  - ### setHeaderKey

    public void setHeaderKey(String headerKey)

  - ### setHeaderValue

    public void setHeaderValue(String headerValue)

  - ### setMultiple

    public void setMultiple(String multiple)

  - ### setSize

    public void setSize(String size)