Запрос Liferay ajax и ответ JSON

Я новичок в Liferay. Я использовал построитель сервисов для создания базы данных. Я заполнил их вручную. И в конце концов я мог вызывать их в JSP, используя PersonLocalServiceUtil class. Теперь я хочу использовать Ajax в своей программе.

Например: человек с атрибутами personID, personWeight, personTemperature и datetime хранится в базе данных.

Я хочу сделать ajax-вызов personID, чтобы увидеть его график веса или температуры для определенной временной шкалы. Все, что я знаю, я могу вызвать список из базы данных в контроллер. Но я не знаю, как я могу преобразовать его в JSON obejct и отправить его в JSP по запросу, чтобы JSP не обновлял страницу, а отображал новый график.


person NNN    schedule 19.07.2013    source источник


Ответы (1)


Вы можете отправить идентификатор человека из jsp, используя запрос ajax, и вы можете получить данные внутри controller (метод serverResource), т.е.

Вам нужно создать URL

<portlet:resourceURL var="resourceURL" >
</portlet:resourceURL>

Вызов Ajax

$.ajax({
  url : '${resourceURL}',
  data : data,//person id to sent
  type: 'POST',
  dataType : "json",
  success : function(data) {
    // get person data back from controller
  }
});

Контроллер

public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) {

    //get person id using getparameter 

    JSONObject json = JSONFactoryUtil.createJSONObject();

    json.put("jsonData", "person details");
    response.getWriter().write(json.toString());

}

ХТН

person Laxman Rana    schedule 19.07.2013
comment
Привет, прежде чем я закрою ответ, я просто хотел узнать еще одну проблему. Почему Service Builder не создает класс JsonSerializer? И если он был сгенерирован, могу ли я использовать его напрямую для ответа на http-запросы в контроллере?? - person NNN; 22.07.2013
comment
Спасибо, счастливчик! Это полностью охватывает очень распространенный сценарий. - person Daddy32; 08.07.2014