Example usage for com.liferay.portal.kernel.template TemplateConstants WRITER

List of usage examples for com.liferay.portal.kernel.template TemplateConstants WRITER

Introduction

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

Prototype

String WRITER

To view the source code for com.liferay.portal.kernel.template TemplateConstants WRITER.

Click Source Link

Usage

From source file:com.liferay.portlet.display.template.internal.PortletDisplayTemplateImpl.java

License:Open Source License

@Override
public String renderDDMTemplate(HttpServletRequest request, HttpServletResponse response,
        DDMTemplate ddmTemplate, List<?> entries, Map<String, Object> contextObjects) throws Exception {

    Transformer transformer = TransformerHolder.getTransformer();

    contextObjects.put(PortletDisplayTemplateConstants.TEMPLATE_ID, ddmTemplate.getTemplateId());
    contextObjects.put(PortletDisplayTemplateConstants.ENTRIES, entries);

    if (!entries.isEmpty()) {
        contextObjects.put(PortletDisplayTemplateConstants.ENTRY, entries.get(0));
    }/*w ww . j av  a 2 s  .c  o m*/

    contextObjects.put(PortletDisplayTemplateConstants.LOCALE, request.getLocale());

    RenderRequest renderRequest = (RenderRequest) request.getAttribute(JavaConstants.JAVAX_PORTLET_REQUEST);

    contextObjects.put(PortletDisplayTemplateConstants.RENDER_REQUEST, renderRequest);

    RenderResponse renderResponse = (RenderResponse) request.getAttribute(JavaConstants.JAVAX_PORTLET_RESPONSE);

    contextObjects.put(PortletDisplayTemplateConstants.RENDER_RESPONSE, renderResponse);

    if ((renderRequest != null) && (renderResponse != null)) {
        PortletURL currentURL = PortletURLUtil.getCurrent(renderRequest, renderResponse);

        contextObjects.put(PortletDisplayTemplateConstants.CURRENT_URL, currentURL.toString());
    }

    ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);

    contextObjects.put(PortletDisplayTemplateConstants.THEME_DISPLAY, themeDisplay);

    // Custom context objects

    contextObjects.put(TemplateConstants.CLASS_NAME_ID, ddmTemplate.getClassNameId());

    String language = ddmTemplate.getLanguage();

    TemplateManager templateManager = TemplateManagerUtil.getTemplateManager(language);

    TemplateHandler templateHandler = TemplateHandlerRegistryUtil
            .getTemplateHandler(ddmTemplate.getClassNameId());

    templateManager.addContextObjects(contextObjects, templateHandler.getCustomContextObjects());

    // Taglibs

    templateManager.addTaglibSupport(contextObjects, request, response);

    UnsyncStringWriter unsyncStringWriter = new UnsyncStringWriter();

    templateManager.addTaglibTheme(contextObjects, "taglibLiferay", request,
            new PipingServletResponse(response, unsyncStringWriter));

    contextObjects.put(TemplateConstants.WRITER, unsyncStringWriter);

    if (renderRequest != null) {
        _mergePortletPreferences(renderRequest, contextObjects);
    }

    return transformer.transform(themeDisplay, contextObjects, ddmTemplate.getScript(), language,
            unsyncStringWriter);
}