我在autocompleterStruts 2应用程序中使用了Struts2 jQuery 。
autocompleter
这是我的代码:
JSP:
<s:form id="frm_demo" theme="simple" action="ManagersAutoCompleter1"> <s:url var="remoteurl" action="test" /> <sj:autocompleter href="%{remoteurl}" id="echo3" name="echo" list="itemList" listKey="id" listValue="name" emptyOption="true" headerKey="-1" headerValue="Please Select a Language" selectBox="true" /> <s:submit value="submit" /> </s:form>
Struts.xml :
Struts.xml
<action name="test" class="test.TestAction" method="populate"> <result type="json"> </result> </action>
动作类:
public String populate() throws Exception { itemList = new ArrayList<ListValue>(); itemList.add(new ListValue("Php", "Php")); itemList.add(new ListValue("Java", "Java")); itemList.add(new ListValue("Mysl", "Mysl")); return SUCCESS; } //getter setter for itemList
清单类别:
public class ListValue { private String id; private String name; public ListValue(String id, String name) { this.id = id; this.name = name; } //getter setter methods
但是此Struts2 jQuery autocompleter无法正常工作。它不会填充任何值。
做这个
<s:url id="remoteurl" action="test"/> <sj:select id="customersjsonlstid" name="echo" label="Handle a List" href="%{remoteurl}" list="itemList" listValue="name" listKey="id" autocomplete="true" loadMinimumCount="2" id="echo3"/>
代替这个 :
<sj:autocompleter href="%{remoteurl}" id="echo3" name="echo" list="itemList" listKey="id" listValue="name" emptyOption="true" headerKey="-1" headerValue="Please Select a Language" selectBox="true" />
并确保您要从操作类中返回列表。要进行检查,请使用IDE调试器或System.out.print等进行。
ex... ------------- ------------ itemList.add(new ListValue("Mysl", "Mysl") ); System.out.println("Size of my list="+itemList.size()); return SUCCESS; }
另外,您还应在动作类中定义吸气剂和吸气剂
private List itemList; public List getItemList() { return itemList; } public void setItemList(List itemList) { this.itemList = itemList; }