Как передать Java-бины на страницу JSP для отображения JQQrid с помощью JSON? - PullRequest
1 голос
/ 18 сентября 2009

мы пытаемся использовать jqGrid с нашим внешним интерфейсом jsp и java.

эта страница отображает сетку контактов:

jQuery(document).ready(function(){ 
  jQuery("#list").jqGrid({
    datatype: 'json',
    url:'gridContactDrv.jsp',
    mtype: 'GET',
    height:300,
    width:600,
    colNames:['First Name','Last Name', 'Company', 'Primary Phone','Email'],
    colModel :[ 
      {name:'firstname', index:'firstname', width:100}, 
      {name:'lastname', index:'lastname', width:100 }, 
      {name:'company', index:'company', width:100}, 
      {name:'phone', index:'phone', width:100 }, 
      {name:'email', index:'email', width:200}
    ],
    pager: '#pager',
    rowNum:10,
    rowList:[10,20,30],
    sortname: 'lastname',
    sortorder: 'desc',
    viewrecords: true
  }); 
}); 

gridContactDrv.jsp вызывает функцию поиска, которая возвращает Вектор ContactBeans. В нашем текущем (старом) способе мы перебираем вектор, подключаем 5 полей в каждом бине и создаем таблицу HTML.

Теперь мы хотим использовать json, и я не могу понять, как создать действительный json (obect? Array?) Для передачи в сетку.

    Enumeration e = resultVector.elements();
    while (e.hasMoreElements()) 
    {
        ContactBean c = ContactBean((ContactBean)e.nextElement());
        c.getCompany() 
            c.getFirstName() etc etc and what to do?
        }

кстати, у ContactBean есть много других элементов данных, но мы отображаем только 5 полей.

Может кто-нибудь дать мне несколько советов для начала? Я искал несколько дней и чувствую, что никуда не денусь.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2009

Вам необходимо:

  1. Настройте свой экземпляр jqGrid на ожидайте данные JSON
  2. Есть что-то (сервлет?) На бэкэнде, которое будет обрабатывать JSON-запрос. Конечно, вы могли бы выводить данные сетки в виде JSON в том же JSP, который отображает jqGrid, но это в значительной степени противоречит цели (особенно для больших объемов данных, если используется разбиение на страницы).
  3. Используйте библиотеку JSON, например, json-lib , чтобы маршалировать ваши bean-компоненты в JSON. Мне лично нравится XStream , но доступно много различных реализаций.
0 голосов
/ 18 сентября 2009

Вы смотрели на класс JSONWriter с сайта json.org ?

Цитирование из API документов :

 new JSONWriter(myWriter)
     .object()
         .key("JSON")
         .value("Hello, World!")
     .endObject();

который пишет

 {"JSON":"Hello, World!"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...