Example usage for com.liferay.portal.kernel.portlet LiferayPortletResponse getHttpServletResponse

List of usage examples for com.liferay.portal.kernel.portlet LiferayPortletResponse getHttpServletResponse

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.portlet LiferayPortletResponse getHttpServletResponse.

Prototype

public HttpServletResponse getHttpServletResponse();

Source Link

Usage

From source file:com.liferay.portlet.InvokerPortletImpl.java

License:Open Source License

protected void invoke(LiferayPortletRequest portletRequest, LiferayPortletResponse portletResponse,
        String lifecycle, List<? extends PortletFilter> filters) throws IOException, PortletException {

    FilterChain filterChain = new FilterChainImpl(_portlet, filters);

    if (_portletConfigImpl.isWARFile()) {
        String invokerPortletName = _portletConfigImpl.getInitParameter(INIT_INVOKER_PORTLET_NAME);

        if (invokerPortletName == null) {
            invokerPortletName = _portletConfigImpl.getPortletName();
        }// w  w  w .j  ava 2 s.co  m

        String path = StringPool.SLASH + invokerPortletName + "/invoke";

        RequestDispatcher requestDispatcher = _portletContextImpl.getServletContext()
                .getRequestDispatcher(path);

        HttpServletRequest request = portletRequest.getHttpServletRequest();
        HttpServletResponse response = portletResponse.getHttpServletResponse();

        request.setAttribute(JavaConstants.JAVAX_PORTLET_PORTLET, _portlet);
        request.setAttribute(PortletRequest.LIFECYCLE_PHASE, lifecycle);
        request.setAttribute(PortletServlet.PORTLET_SERVLET_FILTER_CHAIN, filterChain);

        try {

            // Resource phase must be a forward because includes do not
            // allow you to specify the content type or headers

            if (lifecycle.equals(PortletRequest.RESOURCE_PHASE)) {
                requestDispatcher.forward(request, response);
            } else {
                requestDispatcher.include(request, response);
            }
        } catch (ServletException se) {
            Throwable cause = se.getRootCause();

            if (cause instanceof PortletException) {
                throw (PortletException) cause;
            }

            throw new PortletException(cause);
        }
    } else {
        PortletFilterUtil.doFilter(portletRequest, portletResponse, lifecycle, filterChain);
    }

    portletResponse.transferMarkupHeadElements();

    Map<String, String[]> properties = portletResponse.getProperties();

    if ((properties != null) && (properties.size() > 0)) {
        if (_expCache != null) {
            String[] expCache = properties.get(RenderResponse.EXPIRATION_CACHE);

            if ((expCache != null) && (expCache.length > 0) && (expCache[0] != null)) {

                _expCache = new Integer(GetterUtil.getInteger(expCache[0]));
            }
        }
    }
}

From source file:org.apache.tapestry5.internal.portlet.services.PortletResponseImpl.java

License:Apache License

public PrintWriter getPrintWriter(String contentType) throws IOException {
    //       _logger.error(PortletServicesMessages.unsupportedMethod("getPrintWriter"));
    //       return null;
    //       LiferayPortletResponse liferayResponse = (LiferayPortletResponse) _response;
    //       return liferayResponse.getHttpServletResponse().getWriter();

    //       HttpServletResponse servletResponse = ((LiferayPortletResponse) _response).getHttpServletResponse();
    //       _logger.info("getPrintWriter " + contentType + " " + servletResponse.getCharacterEncoding());
    //       servletResponse.setContentType(contentType);
    //       OutputStream os = servletResponse.getOutputStream();
    //       Writer w = new OutputStreamWriter(os, servletResponse.getCharacterEncoding());
    //       return new PrintWriter(new BufferedWriter(w));
    _logger.info("getPrintWriter");
    LiferayPortletResponse liferayResponse = (LiferayPortletResponse) _response;

    if (_request == null) {
        _logger.info("REQUEST IS NULL");
        return null;
    }// w  w w  .j a v  a  2 s.  c  om

    if (_request.isXHR()) {
        //          _logger.info("Request is XHR IN RESPONSE TOO");
        // TODO: Content Type Header + Encoding setzen (?)
        _logger.info("XHR Content-Type: " + contentType);
        liferayResponse.setHeader("Content-Type", contentType);
        _logger.info("Response Content-Type: " + liferayResponse.getHttpServletResponse().getContentType());
        return liferayResponse.getHttpServletResponse().getWriter();
    } else {
        //          _logger.info("Request is not XHR IN RESPONSE");
        return null;
    }
}