【发布时间】:2013-07-11 11:26:32
【问题描述】:
我是 liferay portlet 开发的初学者,我正在开发一个 portlet,它接收一个 http get 请求,处理一些信息,然后它必须返回一个 json 对象。我的问题是我的 portlet 发送了整个 html 页面而不仅仅是 json 对象。 这是我的代码:
HttpServletResponse servletResponse = PortalUtil.getHttpServletResponse((renderResponse));
servletResponse.setHeader("Content-type", "application/json");
servletResponse.setCharacterEncoding("application/json");
PrintWriter out = servletResponse.getWriter();
out.write(EntityUtils.toString(responseEntity));
out.flush();
out.close();
我在 doView() 方法中执行此操作,我知道这不是最佳实践,但目前我并不关心。有人可以向我解释如何只返回我读过一些关于serveResponse的json对象,但我不知道如何调用它。
【问题讨论】:
-
我建议不要在 portlet 中使用 HttpServletRequest 或 HttpServletResponse 类。它打破了整个 portlet 编程模型,并且只欢迎进一步的不良做法。看看破窗的想法codinghorror.com/blog/2005/06/the-broken-window-theory.html
-
Be 担心在
doView中实现这一点是不好的做法,正是因为它确实 不 工作。这就是serveResource的用途
标签: json liferay httprequest portlet