Implements a component that manages an HTML <select> form element. The Select component can take the form of a drop down list (default) or a list selection box if the "multiple" parameter is set to true. The Select component must wrap around Option components within a Form .
Unless multiple selections are required, it is generally easier to use the PropertySelection component.
See also: org.apache.tapestry.form.Select , Form , Option , RadioGroup , Radio , PropertySelection
Name | Type | Direction | Required | Default | Description |
---|---|---|---|---|---|
multiple | boolean | in | no | false | If true, the component allows multiple selection. |
disabled | boolean | in | no | false | Controls whether the select is active or not. Corresponds to the "disabled" HTML attribute. |
displayName | String | in | no | The user-presentable name for the component, which will be used by a FieldLabel connected to the component. | |
validators | Array or collection of Validator , or Validator | in | no | The validators to apply to the component. In many cases, a "validators" binding can help. | |
id | String | in | no | Sets the id attribute for the rendered <select> element. |
Body: allowed
Informal parameters: allowed
Reserved parameters: name
In the following example, a user can select several colors (and, because of the validator, he must select at least one).
<form jwcid="@Form" listener="listener:formSubmit"> <span jwcid="@FieldLabel" field="component:colorChooser" displayName="Choose a color">Color</span> <select jwcid="colorChooser@Select" multiple="ognl:true" validators="validators:required"> <span jwcid="@Foreach" source="ognl:colors" value="ognl:currentColor" index="ognl:currentColorIndex"> <option jwcid="@Option" selected="ognl:selection[currentColorIndex]" label="ognl:currentColor"/> </span> </select> <input type="submit"/> </form>
public abstract class ColorChooser extends BasePage implements PageBeginRenderListener{ private String[] colors = {"blue", "red", "green", "yellow"}; public abstract int getCurrentColorIndex(); public abstract String getCurrentColor(); public abstract boolean[] getSelection(); public abstract void setSelection(boolean[] selection); public String[] getColors() { return colors; } public void formSubmit() { // process form } public void pageBeginRender(PageEvent event) { if (getSelection() == null) { setSelection(new boolean[colors.length]); } } }