powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Servlet. doPost - вернуть json.
7 сообщений из 7, страница 1 из 1
Servlet. doPost - вернуть json.
    #38750447
wvetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот смотрю пример: jQuery Bootgrid
(И делаю по аналогии у себя)

Этот grid получает на вход json из doPost.
Судя из примера должен прийти такой JSON (Response):

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
{
  "current": 1,
  "rowCount": 10,
  "rows": [
    {
      "id": 19,
      "sender": "123@test.de",
      "received": "2014-05-30T22:15:00"
    },
    {
      "id": 14,
      "sender": "123@test.de",
      "received": "2014-05-30T20:15:00"
    },
  ],
  "total": 2
}


Создал свой сервлет:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("application/json; charset=UTF-8;");
		PrintWriter out = response.getWriter();	
		//out.println("{\"key\": \"value\"}"); // json type format {"key":"value"}
		
		
		JSONObject obj = new JSONObject();
		
		String s = "{\"current\":1,\"rowCount\": 10,\"rows\":[{\"id\":19,\"sender\":\"test.de\",\"received\":\"2014-05-30T22:15:00\"},{\"id\": 14,\"sender\":\"test.de\",\"received\":\"2014-05-30T20:15:00\"},],\"total\":2}";
			
		//obj.put("current", new Integer(1));
		//obj.put("rowCount", new Integer(10));
		//obj.put("total", new Integer(0));
		//obj.put("length", new Integer(0));
		
		
		//out.println("{\"current\": \"1\"}"); // json type format {"key":"value"}
		//out.println("{\"rowCount\": \"10\"}"); // json type format {"key":"value"}
		//out.println("{\"total\": \"0\"}"); // json type format {"key":"value"}
		//out.println("{\"length\": \"0\"}"); // json type format {"key":"value"}
	    
		out.println(s); // json type format {"key":"value"}
		
	        //out.println(obj); 
			
	}



Выложу еще примеры с сайта (на всякий случай):
HTML:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<table id="grid-data" class="table table-condensed table-hover table-striped">
    <thead>
        <tr>
            <th data-column-id="id" data-type="numeric">ID</th>
            <th data-column-id="sender">Sender</th>
            <th data-column-id="received" data-order="desc">Received</th>
            <th data-column-id="commands" data-formatter="commands" data-sortable="false">Commands</th>
        </tr>
    </thead>
</table>



JavaScript:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
var grid = $("#grid-command-buttons").bootgrid({
    ajax: true,
    post: function ()
    {
        return {
            id: "b0df282a-0d67-40e5-8558-c9e93b7befed"
        };
    },
    url: "/api/data/basic",
    formatters: {
        "commands": function(column, row)
        {
            return "<button type=\"button\" class=\"btn btn-xs btn-default command-edit\" data-row-id=\"" + row.id + "\"><span class=\"fa fa-pencil\"></span></button> " + 
                "<button type=\"button\" class=\"btn btn-xs btn-default command-delete\" data-row-id=\"" + row.id + "\"><span class=\"fa fa-trash-o\"></span></button>";
        }
    }
}).on("loaded.rs.jquery.bootgrid", function()
{
    /* Executes after data is loaded and rendered */
    grid.find(".command-edit").on("click", function(e)
    {
        alert("You pressed edit on row: " + $(this).data("row-id"));
    }).end().find(".command-delete").on("click", function(e)
    {
        alert("You pressed delete on row: " + $(this).data("row-id"));
    });
});


Здесь заменил url на свой:
Код: java
1.
url: "http://localhost:8080/MyProject/Servlet1",


url - Sets the data URL to a data service (e.g. a REST service). Either a String or a Function that returns a String can be passed. Default value is "".

POST Body (Request):
Код: javascript
1.
current=1&rowCount=10&sort[sender]=asc&searchPhrase=&id=b0df282a-0d67-40e5-8558-c9e93b7befed



Вопросы:
Меня больше всего интересует метод doPost, и как он отправляет json.
Правильно ли я делаю? Или что-то нужно сделать не так?
Пробовал разными способами (как видно из закомментированного текста).
Но результата пока нет - в grig пишется: No results found!
...
Рейтинг: 0 / 0
Servlet. doPost - вернуть json.
    #38750462
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wvetalПравильно ли я делаю?

Нет.

wvetalИли что-то нужно сделать не так?
Использовать инструменты (API) работы с JSON, а не копипастить в String. Любая опечатка и ваш JSON не валиден.
К тому же этот API уже стандартизирован в JEE 7.

wvetalНо результата пока нет - в grig пишется: No results found!
Пора открыть для себя консоль разработчика в FireFox и Chrome.
...
Рейтинг: 0 / 0
Servlet. doPost - вернуть json.
    #38750646
wvetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Спасибо за советы.

Переделал метод doPost:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("application/json; charset=UTF-8;");
		PrintWriter out = response.getWriter();	

		JSONObject obj2 = new JSONObject();	
		obj2.put("current", new Integer(1));
		obj2.put("rowCount", new Integer(10));
		obj2.put("total", new Integer(2));
				
		JSONObject obj3 = new JSONObject();
		obj3.put("id", new Integer(11));
		obj3.put("sender", "123@mail.ru");
		obj3.put("received", "2014-05-30T22:15:00");
		
		JSONObject obj4 = new JSONObject();
		obj4.put("id", new Integer(12));
		obj4.put("sender", "vetal@test.de");
		obj4.put("received", "2015-05-30T22:15:00");
				
		JSONArray list3 = new JSONArray();
		list3.add(obj3);
		list3.add(obj4);
		
		obj2.put("rows", list3);
		
		out.println(obj2);
	 	 			
	}


Теперь данные в grid выводятся, но почему-то сортировка по столбцам не работает и поиск не работает.
В какую сторону копать, чтоб сортировка и поиск заработали?

Blazkowicz Пора открыть для себя консоль разработчика в FireFox и Chrome.
Консолью разработчика пользуюсь.
...
Рейтинг: 0 / 0
Servlet. doPost - вернуть json.
    #38750678
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wvetalВ какую сторону копать, чтоб сортировка и поиск заработали?

Вот в эту
http://www.jquery-bootgrid.com/Documentation
...
Рейтинг: 0 / 0
Servlet. doPost - вернуть json.
    #38750758
wvetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczwvetalВ какую сторону копать, чтоб сортировка и поиск заработали?

Вот в эту
http://www.jquery-bootgrid.com/Documentation
Если имелись ввиду параметры типа:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$(function(){
var grid = $("#grid-command-buttons").bootgrid({
    ajax: true,
    
    sorting: true,
    selection: true,
    multiSort: true,
    multiSelect: true,
    //rowCount: -1,
    columnSelection: true,
    ...


- то это не помогло.

Вообще может быть что-то не так с json строкой или сервлетом?
...
Рейтинг: 0 / 0
Servlet. doPost - вернуть json.
    #38750762
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wvetal - то это не помогло.

А Ctrl+F5 ?
...
Рейтинг: 0 / 0
Servlet. doPost - вернуть json.
    #38750781
wvetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczА Ctrl+F5 ?Тоже не помогло.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Servlet. doPost - вернуть json.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]