2013-07-19 22 views
5

Jestem nowy w Liferay. Do tworzenia bazy danych użyłem kreatora usług. Zapełniłem je ręcznie. I w końcu mógłbym wywołać je w JSP przy użyciu PersonLocalServiceUtil class. Teraz chcę używać Ajax w moim programie.Żądanie ajax Liferay i odpowiedź JSON

Na przykład: Osoba z atrybutami personID, personWeight, personTemperature i datetime są przechowywane w bazie danych.

chcę zrobić ajax wywołanie przez personID aby zobaczyć jego waga lub Temperatura wykres dla konkretnego czasu. Wszystko, co wiem, mogę wywołać listę z bazy danych do kontrolera Ale nie wiem Jak mogę przekonwertować ją na JSON obejść i przesłać dalej do strony JSP na żądanie, aby JSP nie odświeżyło strony, ale wyświetliło nowy wykres.

Odpowiedz

6

można wysyłać ID osoby z JSP przy użyciu żądania ajax i można pobrać dane wewnątrz kontrolera (metoda serveResource) tj

Musisz utworzyć adresu URL

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

Ajax połączenia

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

Kontroler część

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

} 

HTH

+0

Dzięki za odpowiedź @Lucky Boy ... – NNN

+1

@ArkoMahmud Jeśli to pomogło następnie zaakceptować odpowiedź – Niranjan

+0

Hi Zanim zamknę odpowiedź, chciałem tylko wiedzieć jedno kwestia. Dlaczego program Service Builder nie generuje klasy JsonSerializer? A jeśli został wygenerowany, czy mogę użyć go bezpośrednio do żądania odpowiedzi HTTP w kontrolerze? – NNN