org.apache.struts2.dojo.components
Class Autocompleter
java.lang.Object
org.apache.struts2.components.Component
org.apache.struts2.components.UIBean
org.apache.struts2.components.TextField
org.apache.struts2.components.ComboBox
org.apache.struts2.dojo.components.Autocompleter
public class Autocompleter
- extends org.apache.struts2.components.ComboBox
The autocomplete tag is a combobox that can autocomplete text entered on the input box. If an action
is used to populate the autocompleter, the output of the action must be a well formed JSON string.
The autocompleter follows this rule to find its datasource:
1. If the response is an array, assume that it contains 2-dimension array elements, like:
[
["Alabama", "AL"],
["Alaska", "AK"]
]
2. If a value is specified in the "dataFieldName" attribute, and the response has a field with that
name, assume that's the datasource, which can be an array of 2-dimension array elements, or a map,
like (assuming dataFieldName="state"):
{
"state" : [
["Alabama","AL"],
["Alaska","AK"]
]
}
or
{
"state" : {
"Alabama" : "AL",
"Alaska" : "AK"
}
}
3. If there is a field that starts with the value specified on the "name" attribute, assume
that's the datasource, like (assuming name="state"):
{
"states" : [
["Alabama","AL"],
["Alaska","AK"]
]
}
4. Use first array that is found, like:
{
"anything" : [
["Alabama", "AL"],
["Alaska", "AK"]
]
}
5. If the response is a map, use it (recommended as it is the easiest one to generate):
{
"Alabama" : "AL",
"Alaska" : "AK"
}
Examples
<sx:autocompleter name="autocompleter1" href="%{jsonList}"/>
<s:autocompleter name="test" list="{'apple','banana','grape','pear'}" autoComplete="false"/>
<sx:autocompleter name="mvc" href="%{jsonList}" loadOnTextChange="true" loadMinimumCount="3"/>
The text entered on the autocompleter is passed as a parameter to the url specified in "href", like (text is "struts"):
http://host/example/myaction.do?mvc=struts
<form id="selectForm">
<sx:autocompleter name="select" list="{'fruits','colors'}" valueNotifyTopics="/changed" />
</form>
<sx:autocompleter href="%{jsonList}" formId="selectForm" listenTopics="/changed"/>
<sx:autocompleter href="%{jsonList}" id="auto"/>
<script type="text/javascript">
function getValues() {
var autoCompleter = dojo.widget.byId("auto");
//key (in the states example above, "AL")
var key = autoCompleter.getSelectedKey();
alert(key);
//value (in the states example above, "Alabama")
var value = autoCompleter.getSelectedValue();
alert(value);
//text currently on the textbox (anything the user typed)
var text = autoCompleter.getText();
alert(text);
}
function setValues() {
var autoCompleter = dojo.widget.byId("auto");
//key (key will be set to "AL" and value to "Alabama")
autoCompleter.setSelectedKey("AL");
//value (key will be set to "AL" and value to "Alabama")
autoCompleter.setAllValues("AL", "Alabama");
}
</script>
<script type="text/javascript">
dojo.event.topic.subscribe("/before", function(event, widget){
alert('inside a topic event. before request');
//event: set event.cancel = true, to cancel request
//widget: widget that published the topic
});
</script>
<sx:autocompleter beforeNotifyTopics="/before" href="%{#ajaxTest} />
<script type="text/javascript">
dojo.event.topic.subscribe("/after", function(data, request, widget){
alert('inside a topic event. after request');
//data : JavaScript object from parsing response
//request: XMLHttpRequest object
//widget: widget that published the topic
});
</script>
<sx:autocompleter afterNotifyTopics="/after" href="%{#ajaxTest}" />
<script type="text/javascript">
dojo.event.topic.subscribe("/error", function(error, request, widget){
alert('inside a topic event. on error');
//error : error object (error.message has the error message)
//request: XMLHttpRequest object
//widget: widget that published the topic
});
</script>
<sx:autocompleter errorNotifyTopics="/error" href="%{#ajaxTest}" />
<script type="text/javascript">
dojo.event.topic.subscribe("/value", function(value, key, text, widget){
alert('inside a topic event. after value changed');
//value : selected value (like "Florida" in example above)
//key: selected key (like "FL" in example above)
//text: text typed into textbox
//widget: widget that published the topic
});
</script>
<sx:autocompleter valueNotifyTopics="/value" href="%{#ajaxTest}" />
Fields inherited from class org.apache.struts2.components.ComboBox |
emptyOption, headerKey, headerValue, list, listKey, listValue |
Fields inherited from class org.apache.struts2.components.TextField |
maxlength, readonly, size |
Fields inherited from class org.apache.struts2.components.UIBean |
accesskey, cssClass, cssErrorClass, cssErrorStyle, cssStyle, defaultTemplateDir, defaultUITheme, dynamicAttributes, id, javascriptTooltip, key, label, labelPosition, labelSeparator, name, onblur, onchange, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup, onselect, request, required, requiredposition, response, tabindex, template, templateDir, templateEngineManager, templateSuffix, theme, title, tooltip, tooltipConfig, tooltipCssClass, tooltipDelay, tooltipIconPath, value |
Fields inherited from class org.apache.struts2.components.Component |
actionMapper, COMPONENT_STACK, parameters, stack |
Constructor Summary |
Autocompleter(com.opensymphony.xwork2.util.ValueStack stack,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
|
Methods inherited from class org.apache.struts2.components.ComboBox |
setEmptyOption, setHeaderKey, setHeaderValue, setListKey, setListValue |
Methods inherited from class org.apache.struts2.components.TextField |
setMaxlength, setMaxLength, setReadonly, setSize |
Methods inherited from class org.apache.struts2.components.UIBean |
addFormParameter, buildTemplateName, enableAncestorFormCustomOnsubmit, end, ensureAttributeSafelyNotEscaped, escape, evaluateNameValue, evaluateParams, getId, getTemplate, getTemplateDir, getTooltipConfig, getValueClassType, mergeTemplate, populateComponentHtmlId, setAccesskey, setCssErrorClass, setCssErrorStyle, setDefaultTemplateDir, setDefaultUITheme, setDynamicAttributes, setJavascriptTooltip, setKey, setLabel, setLabelposition, setLabelSeparator, setOnblur, setOnchange, setOnclick, setOndblclick, setOnfocus, setOnkeydown, setOnkeypress, setOnkeyup, setOnmousedown, setOnmousemove, setOnmouseout, setOnmouseover, setOnmouseup, setOnselect, setRequired, setRequiredposition, setTabindex, setTemplate, setTemplateDir, setTemplateEngineManager, setTitle, setTooltip, setTooltipConfig, setTooltipCssClass, setTooltipDelay, setTooltipIconPath |
Methods inherited from class org.apache.struts2.components.Component |
addAllParameters, addParameter, altSyntax, altSyntax, completeExpressionIfAltSyntax, copyParams, determineActionURL, determineNamespace, end, fieldError, findAncestor, findString, findString, findStringIfAltSyntax, findValue, findValue, findValue, getComponentStack, getParameters, getStack, popComponentStack, setActionMapper, start, stripExpressionIfAltSyntax, stripExpressionIfAltSyntax, toString, usesBody |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TEMPLATE
public static final java.lang.String TEMPLATE
- See Also:
- Constant Field Values
forceValidOption
protected java.lang.String forceValidOption
searchType
protected java.lang.String searchType
autoComplete
protected java.lang.String autoComplete
delay
protected java.lang.String delay
disabled
protected java.lang.String disabled
href
protected java.lang.String href
dropdownWidth
protected java.lang.String dropdownWidth
dropdownHeight
protected java.lang.String dropdownHeight
formId
protected java.lang.String formId
formFilter
protected java.lang.String formFilter
listenTopics
protected java.lang.String listenTopics
notifyTopics
protected java.lang.String notifyTopics
indicator
protected java.lang.String indicator
loadOnTextChange
protected java.lang.String loadOnTextChange
loadMinimumCount
protected java.lang.String loadMinimumCount
showDownArrow
protected java.lang.String showDownArrow
templateCssPath
protected java.lang.String templateCssPath
iconPath
protected java.lang.String iconPath
keyName
protected java.lang.String keyName
dataFieldName
protected java.lang.String dataFieldName
beforeNotifyTopics
protected java.lang.String beforeNotifyTopics
afterNotifyTopics
protected java.lang.String afterNotifyTopics
errorNotifyTopics
protected java.lang.String errorNotifyTopics
valueNotifyTopics
protected java.lang.String valueNotifyTopics
resultsLimit
protected java.lang.String resultsLimit
transport
protected java.lang.String transport
preload
protected java.lang.String preload
keyValue
protected java.lang.String keyValue
Autocompleter
public Autocompleter(com.opensymphony.xwork2.util.ValueStack stack,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
getDefaultTemplate
protected java.lang.String getDefaultTemplate()
- Overrides:
getDefaultTemplate
in class org.apache.struts2.components.ComboBox
getComponentName
public java.lang.String getComponentName()
evaluateExtraParams
public void evaluateExtraParams()
- Overrides:
evaluateExtraParams
in class org.apache.struts2.components.ComboBox
setTheme
public void setTheme(java.lang.String theme)
- Overrides:
setTheme
in class org.apache.struts2.components.UIBean
getTheme
public java.lang.String getTheme()
- Overrides:
getTheme
in class org.apache.struts2.components.UIBean
findListValue
protected java.lang.Object findListValue()
- Overrides:
findListValue
in class org.apache.struts2.components.ComboBox
setAutoComplete
public void setAutoComplete(java.lang.String autoComplete)
setDisabled
public void setDisabled(java.lang.String disabled)
- Overrides:
setDisabled
in class org.apache.struts2.components.UIBean
setForceValidOption
public void setForceValidOption(java.lang.String forceValidOption)
setHref
public void setHref(java.lang.String href)
setDelay
public void setDelay(java.lang.String searchDelay)
setSearchType
public void setSearchType(java.lang.String searchType)
setDropdownHeight
public void setDropdownHeight(java.lang.String height)
setDropdownWidth
public void setDropdownWidth(java.lang.String width)
setFormFilter
public void setFormFilter(java.lang.String formFilter)
setFormId
public void setFormId(java.lang.String formId)
setListenTopics
public void setListenTopics(java.lang.String listenTopics)
setNotifyTopics
public void setNotifyTopics(java.lang.String onValueChangedPublishTopic)
setIndicator
public void setIndicator(java.lang.String indicator)
setLoadMinimumCount
public void setLoadMinimumCount(java.lang.String loadMinimumCount)
setLoadOnTextChange
public void setLoadOnTextChange(java.lang.String loadOnType)
setShowDownArrow
public void setShowDownArrow(java.lang.String showDownArrow)
setList
public void setList(java.lang.String list)
- Overrides:
setList
in class org.apache.struts2.components.ComboBox
setTemplateCssPath
public void setTemplateCssPath(java.lang.String templateCssPath)
setIconPath
public void setIconPath(java.lang.String iconPath)
setKeyName
public void setKeyName(java.lang.String keyName)
setDataFieldName
public void setDataFieldName(java.lang.String dataFieldName)
setCssClass
public void setCssClass(java.lang.String cssClass)
- Overrides:
setCssClass
in class org.apache.struts2.components.UIBean
setCssStyle
public void setCssStyle(java.lang.String cssStyle)
- Overrides:
setCssStyle
in class org.apache.struts2.components.UIBean
setId
public void setId(java.lang.String id)
- Overrides:
setId
in class org.apache.struts2.components.UIBean
setName
public void setName(java.lang.String name)
- Overrides:
setName
in class org.apache.struts2.components.UIBean
setValue
public void setValue(java.lang.String arg0)
- Overrides:
setValue
in class org.apache.struts2.components.UIBean
setAfterNotifyTopics
public void setAfterNotifyTopics(java.lang.String afterNotifyTopics)
setBeforeNotifyTopics
public void setBeforeNotifyTopics(java.lang.String beforeNotifyTopics)
setErrorNotifyTopics
public void setErrorNotifyTopics(java.lang.String errorNotifyTopics)
setValueNotifyTopics
public void setValueNotifyTopics(java.lang.String valueNotifyTopics)
setResultsLimit
public void setResultsLimit(java.lang.String resultsLimit)
setTransport
public void setTransport(java.lang.String transport)
setPreload
public void setPreload(java.lang.String preload)
setKeyValue
public void setKeyValue(java.lang.String keyValue)
Copyright © 2000-2009 Apache Software Foundation. All Rights Reserved.