diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java index dbd7661b6..f6101333c 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java @@ -252,6 +252,7 @@ public class Autocompleter extends ComboBox { protected String valueNotifyTopics; protected String resultsLimit; protected String transport; + protected String preload; public Autocompleter(ValueStack stack, HttpServletRequest request, HttpServletResponse response) { @@ -324,6 +325,8 @@ public class Autocompleter extends ComboBox { } if (transport != null) addParameter("transport", findString(transport)); + if (preload != null) + addParameter("preload", findValue(preload, Boolean.class)); String keyNameExpr = "%{" + keyName + "}"; addParameter("key", findString(keyNameExpr)); @@ -516,4 +519,9 @@ public class Autocompleter extends ComboBox { public void setTransport(String transport) { this.transport = transport; } + + @StrutsTagAttribute(description="Load options when page is loaded", type="Boolean", defaultValue="true") + public void setPreload(String preload) { + this.preload = preload; + } } diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTag.java index 54ac5ce0a..5e26e9f56 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTag.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTag.java @@ -61,6 +61,7 @@ public class AutocompleterTag extends ComboBoxTag { protected String valueNotifyTopics; protected String resultsLimit; protected String transport; + protected String preload; public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { return new Autocompleter(stack, req, res); @@ -96,6 +97,7 @@ public class AutocompleterTag extends ComboBoxTag { autocompleter.setValueNotifyTopics(valueNotifyTopics); autocompleter.setResultsLimit(resultsLimit); autocompleter.setTransport(transport); + autocompleter.setPreload(preload); } public void setAutoComplete(String autoComplete) { @@ -205,4 +207,8 @@ public class AutocompleterTag extends ComboBoxTag { public void setTransport(String transport) { this.transport = transport; } + + public void setPreload(String preload) { + this.preload = preload; + } } diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js index e959939c8..6989dac65 100644 --- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js +++ b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js @@ -184,7 +184,7 @@ struts.widget.ComboBoxDataProvider = function(combobox, node){ }; - if(!dojo.string.isBlank(this.cbox.dataUrl)){ + if(!dojo.string.isBlank(this.cbox.dataUrl) && this.cbox.preload){ this.getData(this.cbox.dataUrl); } else { // check to see if we can populate the list from