我正在尝试使用Json从db获取数据,但没有弄错我。在点击"显示表"按钮仅显示警报并显示无表:
MyJsp.jsp
<script src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#emptable").hide();
$("#showTable").click(function(event){
$.get('EmpServlet',function(responseJson){
if(responseJson!=null){
$("#emptable").find("tr:gt(0)").remove();
var table1= $("#countrytable");
$.each(responseJson,function(key,value){
var rowNew = $("<tr><td></td><td></td><td></td></tr>");
rowNew.children().eq(0).text(value['eid']);
rowNew.children().eq(1).text(value['ename']);
rowNew.children().eq(2).text(value['esal']);
rowNew.appendTo(table1);
});
}
});
$("#tablediv").show();
alert('hhh');
});
});
</script>
<body class="container">
<h1>AJAX Retrieve Data from Database in Servlet and JSP using JSONArray</h1>
<input type="button" value="Show Table" id="showTable"/>
<div id="tablediv">
<table cellspacing="0" id="emptable">
<tr>
<th scope="col">ID</th>
<th scope="col">Name</th>
<th scope="col">Salary</th>
</tr>
</table>
</div>
</body>
我在这里得到了警告,因为......这意味着它正在执行而没有任何错误。
Servlet:&#39; EmpServlet&#39;包含
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ArrayList<Employee> al=new ArrayList<Employee>();
EmployeeDetails obj=new EmployeeDetails();
al=obj.getDetails();
System.out.println("-----------hiii-----");
Gson gson=new Gson();
JsonElement element=gson.toJsonTree(al,new TypeToken<List<Employee>>() {}.getType());
JsonArray jsonArray = element.getAsJsonArray();
response.setContentType("application/json");
response.getWriter().print(jsonArray);
}
我能够看到&#34; hii&#34;在控制台和值从db.Please帮助!!
另外,请解释下面代码的含义:
$("#emptable").find("tr:gt(0)").remove();
和
rowNew.children().eq(0).text(value['eid']);
rowNew.children().eq(1).text(value['ename']);
rowNew.children().eq(2).text(value['esal']);
这是&#34; eid&#34;与我所贬低的雇员的pojo类一样:
String eid;
String ename;
String esal;
public Employee(String eid, String ename, String esal) {
super();
this.eid = eid;
this.ename = ename;
this.esal = esal;
}
public String getEid() {
return eid;
}
public String getEname() {
return ename;
}
public String getEsal() {
return esal;
}
答案 0 :(得分:0)
看看这个:
$.get('EmpServlet',function(responseJson){
$.each(responseJson,function(key,value){
...
});
});
您总是会获得一个JSON对象作为响应。这意味着,each
- 循环只发生一次,如果有的话。在value
参数中将是实际的数组。
我没有测试过,所以也许我错了。