com.opensymphony.webwork.components
Class Select

java.lang.Object
  extended by com.opensymphony.webwork.components.Component
      extended by com.opensymphony.webwork.components.UIBean
          extended by com.opensymphony.webwork.components.ListUIBean
              extended by com.opensymphony.webwork.components.Select
Direct Known Subclasses:
UpDownSelect

public class Select
extends ListUIBean

Render an HTML input tag of type select.

Examples

 
 
 <ww:select label="Pets"
        name="petIds"
        list="petDao.pets"
        listKey="id"
        listValue="name"
        multiple="true"
        size="3"
        required="true"
 />

 <ww: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.

Since:
2.2
Version:
$Revision: 2468 $
Author:
Patrick Lightbody, Rene Gielen, tm_jee

Field Summary
protected  String emptyOption
           
protected  String headerKey
           
protected  String headerValue
           
protected  String multiple
           
protected  String size
           
static String TEMPLATE
           
 
Fields inherited from class com.opensymphony.webwork.components.ListUIBean
list, listKey, listValue, throwExceptionOnNullValueAttribute
 
Fields inherited from class com.opensymphony.webwork.components.UIBean
accesskey, cssClass, cssStyle, disabled, label, labelPosition, name, onblur, onchange, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup, onselect, request, required, requiredposition, response, tabindex, template, templateDir, templateSuffix, theme, title, tooltip, tooltipConfig, value
 
Fields inherited from class com.opensymphony.webwork.components.Component
COMPONENT_STACK, id, parameters, stack
 
Constructor Summary
Select(OgnlValueStack stack, HttpServletRequest request, HttpServletResponse response)
           
 
Method Summary
 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)
          Whether or not to add an empty (--) option after the header option
 void setHeaderKey(String headerKey)
          Key for first item in list.
 void setHeaderValue(String headerValue)
          Value expression for first item in list
 void setMultiple(String multiple)
          Creates a multiple select.
 void setSize(String size)
          Size of the element box (# of elements to show)
 
Methods inherited from class com.opensymphony.webwork.components.ListUIBean
contains, getValueClassType, setList, setListKey, setListValue, setThrowExceptionOnNullValueAttribute
 
Methods inherited from class com.opensymphony.webwork.components.UIBean
addFormParameter, buildTemplateName, enableAncestorFormCustomOnsubmit, end, escape, evaluateNameValue, evaluateParams, getTemplate, getTemplateDir, getTheme, getTooltipConfig, mergeTemplate, populateComponentHtmlId, setAccesskey, setCssClass, setCssStyle, setDisabled, setLabel, setLabelposition, setLabelPosition, setName, setOnblur, setOnchange, setOnclick, setOndblclick, setOnfocus, setOnkeydown, setOnkeypress, setOnkeyup, setOnmousedown, setOnmousemove, setOnmouseout, setOnmouseover, setOnmouseup, setOnselect, setRequired, setRequiredposition, setTabindex, setTemplate, setTemplateDir, setTheme, setTitle, setTooltip, setTooltipConfig, setValue
 
Methods inherited from class com.opensymphony.webwork.components.Component
addAllParameters, addParameter, altSyntax, copyParams, determineActionURL, determineNamespace, end, fieldError, findAncestor, findString, findString, findValue, findValue, findValue, getComponentStack, getId, getParameters, getStack, popComponentStack, setId, start, toString, usesBody
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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 Detail

Select

public Select(OgnlValueStack stack,
              HttpServletRequest request,
              HttpServletResponse response)
Method Detail

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)
Whether or not to add an empty (--) option after the header option


setHeaderKey

public void setHeaderKey(String headerKey)
Key for first item in list. Must not be empty! "'-1'" and "''" is correct, "" is bad.


setHeaderValue

public void setHeaderValue(String headerValue)
Value expression for first item in list


setMultiple

public void setMultiple(String multiple)
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. Passing a Collection may work too? Haven't tested this.


setSize

public void setSize(String size)
Size of the element box (# of elements to show)


WebWork Project Page