2015-07-01 2 views
1

new html view у меня есть NetBeans веб-приложение с именем javaservlet.this пакета проекта есть один сервлет databaseconnection.java.here я извлеченный 6 строк из таблицы базы данных сотрудника, который имеет 3 столбцы eid, ename, esalary и показать это как значение json jsondata в "http://localhost:8084/javaservlet/databaseconnection" url.Now Я хочу показать все 6 строк данных в сетке kendo. На странице index.html, которая находится в папке WEB-INF, у меня есть попытался прочитать данные json из url.but, это не работает. Я добавил три заголовка EmployeeSalary, EmployeeName, EmployeeId в сетке kendo ui и трех строковых полях. Когда я запускаю файл, показывающий только значение, когда таблица базы данных имеет только одну строку, но когда таблица имеет несколько строк, кендо не показывает никаких данных. Почему это происходит. Помогите мне решить проблему. Вот мой код databaseconnection.javaкендо UI сетка не получает данные JSON из сервлета

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); 
    } 


} 
+0

вот мой index.html папки WEB-INF. Через эту страницу я хочу показать мои данные json в сетке кендо http://pastebin.com/qSJx63qD – USERRR5

+0

Я все еще пытаюсь справиться с этой проблемой. Я изменил контент-тип как «application/json» как в сервлете, так и в jsp и получил небольшой успех, теперь он показывая только одну строку в кендо .. но не более одной строки. Помогите – USERRR5

+0

, когда я запустил файл index.jsp, тогда он показывает только первую строку данных моей базы данных, но json-объект показывает все 6 строк базы данных. таблица базы данных имеет только одну строку, тогда сетка кендо работает ... – USERRR5

ответ

1

Pls добавить JSONObject в jsonarray внутри, а loop.ex:

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);** 

     } 
+0

, когда я добавляю jArray.add (jobj); он показывал ошибку, а затем менял ее как jArray.put (jobj); но все же сетка kendo не показывает никаких данных, которые я получаю от servlet.now я создал новую страницу index.jsp и задал тип содержимого как text/html и попытался показать jsondata из сервлета, как и в index.html.but пока не показываю данные – USERRR5

+0

Я все еще пытаюсь справиться с этой проблемой. Я изменил тип контента как «application/json» как в сервлете, так и в jsp и получил небольшой успех, теперь он показывает только одну строку в кендо ... но не более одна строка. help help – USERRR5

+0

Я изменил контент-тип как «application/json» как в сервлете, так и в jsp и получил небольшой успех, теперь он показывает только одну строку в кендо ... но не более одной строки ...kendo работает, когда таблица базы данных имеет только одну строку .. когда таблица имеет более одной строки, тогда данные не видны – USERRR5

0

Pls попытаться использовать ниже LIBS JSON Пб-2.2.2-jdk15 Обще-Ланг 2,5 commons- beanutils 1.8.0 общеобразовательные коллекции 3.2.1 Обще-каротажа 1.1.1 ezmorph 1.0.6

изменить код, как это .. response.setContentType ("применение/JSON");

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, чей вперед является «успехом».

+0

Нет, она не работает :(но можно ли захватить запрос выбора в списке и сделать объект json этого список, чтобы сделать эту работу? ..i havn't работал с json задолго до – USERRR5

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()); 
+0

большое вам спасибо .. :) Я решил это .. – USERRR5