Liferay ajax请求和JSON响应

时间:2013-07-19 11:25:08

标签: jquery liferay liferay-aui

我是Liferay的新人。我使用服务构建器来创建数据库。我手动填充它们。最后我可以使用PersonLocalServiceUtil class在JSP中调用它们。 现在我想在我的程序中使用Ajax。

例如: 属性personIDpersonWeightpersonTemperaturedatetime的人员存储在数据库中。

我想通过personID进行ajax调用,以查看特定时间轴的权重温度图表。我所知道的,我可以将数据库从数据库调用到控制器但是我不知道如何将它转换为JSON obejct并根据请求将其转发给JSP,这样JSP就不会刷新页面而是显示新的曲线图。

2 个答案:

答案 0 :(得分:6)

您可以使用ajax请求从jsp发送人员ID,您可以在 controller(serveResource方法)中获取数据 即

您需要创建网址

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

控制器部分

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

答案 1 :(得分:0)

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