Jestem początkującym programistą portletów liferay i opracowuję portlet, który odbiera żądanie pobierania http, przetwarza pewne informacje i musi zwrócić obiekt Json. Mój problem polega na tym, że mój portlet wysyła całą stronę HTML zamiast tylko obiektu json. To jest mój kod:Odpowiedź na żądanie http z obiektem json w portlecie
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();
mogę wykonać to w sposób doView() Wiem, że to nie jest najlepsza praktyka, ale nie jestem zaniepokojony z tym w tej chwili. Czy ktoś może mi wyjaśnić, jak zwrócić tylko obiekt JSON? Czytam coś o serveResponse, ale nie mogłem wymyślić, jak go wywołać.
Odradzam używanie klas HttpServletRequest lub HttpServletResponse w portlecie. Łamie cały model programowania portletów i przyjmuje kolejne złe praktyki. Zobacz pomysł zepsutymi oknami http://www.codinghorror.com/blog/2005/06/the-broken-window-theory.html –
* Być zaniepokojony, że wdrożenie tego w 'doView' jest złą praktyką właśnie dlatego, że * nie działa*. To właśnie 'serveResource' jest dla –