无法使用Json更新jsp上的表

时间:2014-03-19 09:03:19

标签: java javascript jquery json

我正在尝试使用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;
}

1 个答案:

答案 0 :(得分:0)

看看这个:

$.get('EmpServlet',function(responseJson){
    $.each(responseJson,function(key,value){
        ...
    });
});

您总是会获得一个JSON对象作为响应。这意味着,each - 循环只发生一次,如果有的话。在value参数中将是实际的数组。

我没有测试过,所以也许我错了。