自动补全的java封装
原来我做自动补全的时候都是需要什么直接返回什么,不能再返回其他的信息.但是看到经理封装的以后,情况变了(可以返回很多信息了);
参考代码:
String sql = "select kh.khName,kh.khId from OaKehu kh where kh.khName like '%"+khn+"%'";
PrintWriter out = null ;
Query q = session.createQuery(sql);
List<Object[]> result =q.list();
List<Map<String, String>> list = new ArrayList<Map<String, String>>(result.size());
if(result.size()==0){
Map<String, String> map = new HashMap<String, String>(3);
map.put("khName", "");
map.put("khId", "");
map.put("label", "未找到任何结果");
list.add(map);
}else{
for (Object[] o : result) {
Map<String, String> map = new HashMap<String, String>(o.length);
map.put("khName", o[0].toString());
map.put("label", o[0].toString());
map.put("khId", o[1].toString());
list.add(map);
}
}
out = response.getWriter();
out.print(JsonUtil.toJson(list));
out.flush();
out.close();
//备注:其中map中的key为label的显示.其他的数据通过select方法可以调用
//select : function(event, ui) {alert(ui.term[map中的key]);} ;