【发布时间】:2015-06-27 15:21:40
【问题描述】:
Ajax 自动完成功能不起作用。我调试了代码,发现在我编写 json 行的控制器中,调试器无法在那里调试。我也是新手,请帮帮我。
控制器
response.setContentType("application/json");
try {
String term = request.getParameter("term");
System.out.println("Data from ajax call " + term);
AutoData a = new AutoData();
a.setName(term);
DataDao d = new DataDao();
List<AutoData> data = d.getData();
String searchList = new Gson().toJson(data);
response.getWriter().write(searchList);
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
数据DAO
public class DataDao {
private String sql;
private ResultSet rs;
public List<AutoData> getData(){
List<AutoData> aData = new ArrayList<AutoData>();
try{
sql = "select * from userdetails";
rs = DBConnection.executeQuery(sql);
while(rs.next()){
AutoData a = new AutoData();
a.setName(rs.getString("userid"));
aData.add(a);
}
}
catch(Exception e){
System.out.println(e.getMessage());
}
return aData;
}
}
AJAX 代码
$(document).ready(function() {
$(function() {
$("#search").autocomplete({
source : function(request, response) {
$.ajax({
url : "AutoController",
type : "GET",
data : {
term : request.term
},
dataType : "json",
success : function(data) {
response(data);
}
});
}
});
});
});
【问题讨论】:
-
函数名为 function 没有定义可变参数。不应该是 function(var a) 吗?
-
@Srinath - 当控制器返回结果时不工作。
-
好吧,我在 javascript 上工作不多……你觉得哪部分代码有问题?我没有看到 控制器 返回任何东西
-
@Srinath - 此代码存在一些问题,调试在此行停止。 String searchList = new Gson().toJson(data);并且控制器正在返回在上述代码之后编写的搜索列表。
-
尝试打印 searchList 数据元素以查看其中包含的内容...。如果没有某种数据值的堆栈跟踪,很难找到问题...最后一行是打印到 httpResponse 并且不返回