Struts2 jQuery Autocompleter with select box

故事扮演 提交于 2019-12-03 09:41:37
Dan

Do this one

<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"/>

Instead of this:

<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" />

And make sure you are returning the list from your action class. To check this, do it with your IDE debugger or System.out.print etc.

ex...


    -------------
    ------------
    itemList.add(new ListValue("Mysl", "Mysl") );
    System.out.println("Size of my list="+itemList.size());
    return SUCCESS;
}

And also you should define getter & setters in your action class

private List itemList; 
    public List getItemList() {
    return itemList;
} 

public void setItemList(List itemList) {
    this.itemList = itemList;
}

This is wrong:

<sj:autocompleter href="%{remoteurl}" id="lst" name="lst"
    list="itemList" listValue="name" listKey="id" selectBox="true" />

You are feeding the autocompleter with a Map, not with an custom object built by yourself.

An HashMap does not have any name nor id fields, instead it have keys and values fields.

Start by changing that and see if it works:

<sj:autocompleter href="%{remoteurl}" id="lst" name="lst"
    list="itemList" listValue="value" listKey="key" selectBox="true" />

You have typed wrong attribute that is not referenced.

<s:url id="remoteurl" action="test" />

should be

 <s:url var="remoteurl" action="test" />

Use the list item bean class

public class ListValue {
  private String id;
  private String name;
...
}

public String populate() throws Exception {
  itemList.add(new ListValue("Php", "Php"));
  itemList.add(new ListValue("Java","Java") );
  itemList.add(new ListValue("Mysl", "Mysl") );
  return SUCCESS;
}

assumed that constructor and mutators have been added.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!