autocompleter标题用于从服务器读取一组数据,并以下拉列表显示,实现自动补全效果
demo如下
Action
package com.struts2.ajax;
import java.util.ArrayList;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
public class AutoCompleterAction extends ActionSupport {
@Override
public String execute() throws Exception {
System.out.println("方法调用=="+start);
List<String> ls = new ArrayList<String>();
ls.add("admin");
ls.add("adminstrator");
ls.add("user");
ls.add("userGroup");
if(start==null){
start="";
}
for(String s:ls){
if(s.toLowerCase().startsWith(start.toLowerCase())){
provice.add(new String[]{s});
}
}
return SUCCESS;
}
private List<String[]> provice = new ArrayList<String[]>();
private String start;
public List<String[]> getProvice() {
return provice;
}
public void setProvice(List<String[]> provice) {
this.provice = provice;
}
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start;
}
/**
*
*/
private static final long serialVersionUID = 1L;
}
其中start用来标识用户输入的数据,provice标识匹配的结果,以数组返回
页面如下
<sx:autocompleter label="请输入您的省份" href="ajax/AutoCompleterAction" name="provice" indicator="indicator" autoComplete="false" showDownArrow="true" >
</sx:autocompleter>
需注意的是必须引入strut2中对dojo支持的标签,并在head中加入<sx:head/>,否则不会有效果
运行结果如下