Example usage for com.liferay.portal.kernel.template TemplateResourceLoaderUtil hasTemplateResource

List of usage examples for com.liferay.portal.kernel.template TemplateResourceLoaderUtil hasTemplateResource

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.template TemplateResourceLoaderUtil hasTemplateResource.

Prototype

public static boolean hasTemplateResource(String templateResourceLoaderName, String templateId)
            throws TemplateException 

Source Link

Usage

From source file:com.liferay.content.targeting.portlet.FreeMarkerPortlet.java

License:Open Source License

@Override
protected void include(String path, PortletRequest portletRequest, PortletResponse portletResponse,
        String lifecycle) throws IOException, PortletException {

    PortletContext portletContext = getPortletContext();

    String servletContextName = portletContext.getPortletContextName();

    String resourcePath = servletContextName.concat(TemplateConstants.SERVLET_SEPARATOR).concat(path);

    boolean resourceExists = false;

    try {/*from  w  w  w. ja  va 2 s . co  m*/
        resourceExists = TemplateResourceLoaderUtil.hasTemplateResource(TemplateConstants.LANG_TYPE_FTL,
                resourcePath);
    } catch (TemplateException te) {
        throw new IOException(te.getMessage());
    }

    if (!resourceExists) {
        _log.error(path + " is not a valid include");
    } else {
        try {
            TemplateResource templateResource = TemplateResourceLoaderUtil
                    .getTemplateResource(TemplateConstants.LANG_TYPE_FTL, resourcePath);

            Template template = TemplateManagerUtil.getTemplate(TemplateConstants.LANG_TYPE_FTL,
                    templateResource, false);

            TemplateTaglibSupportProvider templateTaglibSupportProvider = getTaglibSupportProvider();

            if (templateTaglibSupportProvider != null) {
                templateTaglibSupportProvider.addTaglibSupport(template, servletContextName, portletRequest,
                        portletResponse);
            }

            // LPS-43725

            HttpServletRequestWrapper httpServletRequestWrapper = new HttpServletRequestWrapper(
                    PortalUtil.getHttpServletRequest(portletRequest));

            HttpServletResponseWrapper httpServletResponseWrapper = new HttpServletResponseWrapper(
                    PortalUtil.getHttpServletResponse(portletResponse));

            HttpRequestHashModel httpRequestHashModel = new HttpRequestHashModel(httpServletRequestWrapper,
                    httpServletResponseWrapper, ObjectWrapper.DEFAULT_WRAPPER);

            template.put("Request", httpRequestHashModel);

            populateContext(path, portletRequest, portletResponse, template);

            Writer writer = null;

            if (portletResponse instanceof MimeResponse) {
                MimeResponse mimeResponse = (MimeResponse) portletResponse;

                writer = UnsyncPrintWriterPool.borrow(mimeResponse.getWriter());
            } else {
                writer = new UnsyncStringWriter();
            }

            template.processTemplate(writer);
        } catch (Exception e) {
            throw new PortletException(e);
        }
    }

    if (clearRequestParameters) {
        if (lifecycle.equals(PortletRequest.RENDER_PHASE)) {
            portletResponse.setProperty("clear-request-parameters", "true");
        }
    }
}

From source file:com.liferay.shipping.portlet.ShippingPortlet.java

License:Open Source License

@Override
protected void include(String path, PortletRequest portletRequest, PortletResponse portletResponse,
        String lifecycle) throws IOException, PortletException {

    PortletContext portletContext = getPortletContext();

    String servletContextName = portletContext.getPortletContextName();

    String resourcePath = servletContextName.concat(TemplateConstants.SERVLET_SEPARATOR).concat(path);

    boolean resourceExists = false;

    try {//from ww  w .  ja va  2s  .c o  m
        resourceExists = TemplateResourceLoaderUtil.hasTemplateResource(TemplateConstants.LANG_TYPE_FTL,
                resourcePath);
    } catch (TemplateException te) {
        throw new IOException(te.getMessage());
    }

    if (!resourceExists) {
        _log.error(path + " is not a valid include");
    } else {
        try {
            Template template = getTemplateWithTaglibSupport(portletRequest, portletResponse,
                    servletContextName, resourcePath);

            populateContext(portletRequest, portletResponse, template);

            Writer writer = null;

            if (portletResponse instanceof MimeResponse) {
                MimeResponse mimeResponse = (MimeResponse) portletResponse;

                writer = UnsyncPrintWriterPool.borrow(mimeResponse.getWriter());
            } else {
                writer = new UnsyncStringWriter();
            }

            template.processTemplate(writer);
        } catch (Exception e) {
            throw new PortletException(e);
        }
    }

    if (clearRequestParameters) {
        if (lifecycle.equals(PortletRequest.RENDER_PHASE)) {
            portletResponse.setProperty("clear-request-parameters", "true");
        }
    }
}