简体   繁体   中英

Liferay ajax request and JSON response

I am new in Liferay. I used service builder to create database. I populated them manually. And eventually I could call them in JSP using PersonLocalServiceUtil class . Now I want to use Ajax in my program.

For example: Person with attributes personID , personWeight , personTemperature and datetime are stored in database.

I want to do an ajax call by personID to see his weight or Temperature graph for particular timeline. All I know, I can call list from Database to controller But I don't know How can I convert it to JSON obejct and forward it to JSP upon request, so that JSP won't refresh the page but display new graph.

You can send person id from jsp using ajax request and you can fetch data inside controller(serveResource method) ie

You need to create URL

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

Ajax Call

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

Controller part

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

public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) {

    Map<String, Object> data = new HashMap<String, Object>();
    data.put("test1", "test1test1test1test1test1");

    super.writeJSON(request, response, new Gson().toJson(data));
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM