kendo ui grid没有从servlet接收json数据

时间:2015-07-01 05:02:57

标签: java json servlets kendo-ui

new html view 我有一个名为javaservlet的netbeans Web应用程序。这个项目包有一个servlet databaseconnection.java.here我从数据库表 employee 检索了6行,其中有3列 eid,ename,esalary < / strong>并将其显示为json值jsondata  在“http://localhost:8084/javaservlet/databaseconnection”url.Now我想在kendo grid中显示所有6行数据。在WEB-INF文件夹中的index.html页面中,我试图从url读取json数据。但它不是working.i在kendo ui网格和三个字符串字段中添加了三个标题 EmployeeSalary,EmployeeName,EmployeeId 。当我运行的文件只显示数据库表只有一行但表有多个时的值行kendo没有显示任何数据..为什么会发生这种情况。请帮助我解决问题。我的代码是 databaseconnection.java

import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
 import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.json.*;

@WebServlet(urlPatterns = {"/databaseconnection"})
public class databaseconnection extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("application/json");
    PrintWriter out = response.getWriter();
    Connection connection = null;
    Statement stmt = null;
    JSONArray jArray = new JSONArray();
    JSONObject jobj = new JSONObject();
    try {
        Class.forName("org.postgresql.Driver");
        connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/test", "postgres", "root");
        stmt = connection.createStatement();
     //  String sql = "INSERT INTO employee (eid,ename,esalary) " + "VALUES (7, 'Nadia', 35000)";
        //  stmt.executeUpdate(sql);
        ResultSet result = stmt.executeQuery("Select eid,ename,esalary from employee");
        while (result.next()) {
            String eid = result.getString("eid");
            String ename = result.getString("ename");
            String esalary = result.getString("esalary");
            jobj.put("eid", eid);
            jobj.put("ename", ename);
            jobj.put("esalary", esalary);
            out.print(jobj);
            out.flush();    

           // jArray.put(jobj);
            // System.out.print(jobj);
        }

    } catch (SQLException e) {

        System.out.println("Connection Failed! Check output console");
        e.printStackTrace();
        return;

    } catch (ClassNotFoundException ex) {
        Logger.getLogger(databaseconnection.class.getName()).log(Level.SEVERE, null, ex);
    }


}

3 个答案:

答案 0 :(得分:1)

请将jsonobject添加到while loop.ex中的jsonarray中。

 while (result.next()) {
            String type_json = result.getString("eid");
            String name_json = result.getString("ename");
            String id_json = result.getString("esalary");
            jobj.put("eid", type_json);
            jobj.put("ename", name_json);
            jobj.put("esalary", id_json);
            **jArray.add(jobj);**

        }

答案 1 :(得分:1)

Sara5,我认为你应该声明Json类的数组对象,如下所示

JSONArray allArray = new JSONArray();

然后

while (result.next()) {
        String type_json = result.getString("eid");
        String name_json = result.getString("ename");
        String id_json = result.getString("esalary");
        jobj.put("eid", type_json);
        jobj.put("ename", name_json);
        jobj.put("esalary", id_json);
        allArray.add(jobj);

    }

然后在此之后,我们创建一个默认的JSON对象来包含所有数组和JSON对象的数量,如下所示

JSONObject myObj = new JSONObject();
myObj.put("success", true);
myObj.put("data", allArray); // all JSON objects
myObj.put("total", total);// total number of JSON objects

response.setContentType("application/json");// don't forget this
PrintWriter writer = response.getWriter();
writer.println(myObj.toString());

答案 2 :(得分:0)

请尝试使用以下库 JSON-LIB-2.2.2-jdk15 commons-lang 2.5 commons-beanutils 1.8.0 公共收藏品3.2.1 公共记录1.1.1 ezmorph 1.0.6

像这样更改你的代码.. response.setContentType(&#34;应用/ JSON&#34);

while (result.next()) {
            String type_json = result.getString("eid");
            String name_json = result.getString("ename");
            String id_json = result.getString("esalary");
            jobj.put("eid", type_json);
            jobj.put("ename", name_json);
            jobj.put("esalary", id_json);
            **jArray.add(jobj);**

        }
String output = jArray.toString();
    PrintWriter writer = response.getWriter();
    writer.write(output);`enter code here`
    writer.close();
return "success";

上面的代码片段会将json输出写入相应的jsp,其前进是&#34;成功&#34;。