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 1286b64c3..fc192aea5 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 @@ -228,6 +228,7 @@ public class Autocompleter extends ComboBox { protected String resultsLimit; protected String transport; protected String preload; + protected String keyValue; public Autocompleter(ValueStack stack, HttpServletRequest request, HttpServletResponse response) { @@ -303,8 +304,13 @@ public class Autocompleter extends ComboBox { if (preload != null) addParameter("preload", findValue(preload, Boolean.class)); - String keyNameExpr = "%{" + keyName + "}"; - addParameter("key", findString(keyNameExpr)); + if (keyValue != null) + addParameter("nameKeyValue", findString(keyValue)); + else { + String keyNameExpr = "%{" + keyName + "}"; + addParameter("nameKeyValue", findString(keyNameExpr)); + } + if (beforeNotifyTopics != null) addParameter("beforeNotifyTopics", findString(beforeNotifyTopics)); @@ -507,4 +513,9 @@ public class Autocompleter extends ComboBox { public void setPreload(String preload) { this.preload = preload; } + + @StrutsTagAttribute(description="Initial key value") + public void setKeyValue(String keyValue) { + this.keyValue = keyValue; + } } 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 5e26e9f56..969852457 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 @@ -62,6 +62,7 @@ public class AutocompleterTag extends ComboBoxTag { protected String resultsLimit; protected String transport; protected String preload; + protected String keyValue; public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { return new Autocompleter(stack, req, res); @@ -98,6 +99,7 @@ public class AutocompleterTag extends ComboBoxTag { autocompleter.setResultsLimit(resultsLimit); autocompleter.setTransport(transport); autocompleter.setPreload(preload); + autocompleter.setKeyValue(keyValue); } public void setAutoComplete(String autoComplete) { @@ -211,4 +213,8 @@ public class AutocompleterTag extends ComboBoxTag { public void setPreload(String preload) { this.preload = preload; } + + public void setKeyValue(String keyValue) { + this.keyValue = keyValue; + } } diff --git a/plugins/dojo/src/main/resources/template/ajax/autocompleter.ftl b/plugins/dojo/src/main/resources/template/ajax/autocompleter.ftl index c9c57b4ec..e7daf46e1 100644 --- a/plugins/dojo/src/main/resources/template/ajax/autocompleter.ftl +++ b/plugins/dojo/src/main/resources/template/ajax/autocompleter.ftl @@ -72,8 +72,8 @@ <#if parameters.nameValue?if_exists != ""> initialValue="${parameters.nameValue}"<#rt/> -<#if parameters.key?if_exists != ""> - initialKey="${parameters.key}"<#rt/> +<#if parameters.nameKeyValue?if_exists != ""> + initialKey="${parameters.nameKeyValue}"<#rt/> <#if parameters.readonly?default(false)> readonly="readonly"<#rt/> diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTest.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTest.java index 95c38ee74..62e91b332 100644 --- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTest.java +++ b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTest.java @@ -52,6 +52,7 @@ public class AutocompleterTest extends AbstractUITagTest { tag.setResultsLimit("2"); tag.setTransport("m"); tag.setPreload("true"); + tag.setKeyValue("key"); tag.doStartTag(); tag.doEndTag(); diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Autocompleter-1.txt b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Autocompleter-1.txt index 4f0943082..335cd262b 100644 --- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Autocompleter-1.txt +++ b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Autocompleter-1.txt @@ -11,6 +11,7 @@ name="f" keyName="i" initialValue="g" + initialKey="key" valueNotifyTopics="l" indicator="h" loadOnType="true"