Package org.zkoss.zk.ui.http

## Class DHtmlLayoutPortlet

- java.lang.Object
- - javax.portlet.GenericPortlet
  - - org.zkoss.zk.ui.http.DHtmlLayoutPortlet

- All Implemented Interfaces:
    `javax.portlet.EventPortlet`, `javax.portlet.HeaderPortlet`, `javax.portlet.Portlet`, `javax.portlet.PortletConfig`, `javax.portlet.ResourceServingPortlet`

      public class DHtmlLayoutPortlet
      extends javax.portlet.GenericPortlet

  The portlet used to process the request for a ZUML page.

  ### Notes:

  - The portlet looks for the path of the ZUML page from the following locations:
    1. From the request parameter called zk_page.
    2. From the request attribute called zk_page.
    3. From the portlet preference called zk_page.
  - If not found, it looks for the portlet from the following locations:
    1. From the request parameter called zk_richlet.
    2. From the request attribute called zk_richlet.
    3. From the portlet preference called zk_richlet.
  - It is based `DHtmlLayoutServlet`, so you have to declare `DHtmlLayoutServlet` even if you want every ZUML pages being processed by this portlet.

  To patch the rendering result of a ZK portlet, you can implement `PageRenderPatch` (and specified it in `Attributes.PORTLET_RENDER_PATCH_CLASS`).

  Author:
    tomyeh

- - ### Field Summary

    - ### Fields inherited from class javax.portlet.GenericPortlet

      `AUTOMATIC_RESOURCE_DISPATCH`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DHtmlLayoutPortlet()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `doView​(javax.portlet.RenderRequest request, javax.portlet.RenderResponse response)` |
    `protected java.lang.String` | `getNamespace​(javax.portlet.RenderResponse response)` | Returns the namespace for resource request parameters
    `void` | `init()` |
    `protected boolean` | `process​(Session sess, javax.portlet.RenderRequest request, javax.portlet.RenderResponse response, java.lang.String path, boolean bRichlet)` | Process a portlet request.
    `void` | `serveResource​(javax.portlet.ResourceRequest request, javax.portlet.ResourceResponse response)` | Process AJAX request here instead of DHtmlUpdateServlet if the Portal Container support JSR 286.

    - ### Methods inherited from class javax.portlet.GenericPortlet

      `destroy, dispatchAnnotatedActionMethod, dispatchAnnotatedEventMethod, dispatchAnnotatedRenderMethod, doDispatch, doEdit, doHeaders, doHelp, getContainerRuntimeOptions, getDefaultNamespace, getInitParameter, getInitParameterNames, getNextPossiblePortletModes, getPortletConfig, getPortletContext, getPortletModes, getPortletName, getProcessingEventQNames, getPublicRenderParameterDefinitions, getPublicRenderParameterNames, getPublishingEventQNames, getResourceBundle, getSupportedLocales, getTitle, getWindowStates, init, processAction, processEvent, render, renderHeaders`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DHtmlLayoutPortlet

          public DHtmlLayoutPortlet()

  - ### Method Detail

    - #### init

          public void init()
                    throws javax.portlet.PortletException

      Overrides:
        `init` in class `javax.portlet.GenericPortlet`
      Throws:
        `javax.portlet.PortletException`

    - #### doView

          protected void doView​(javax.portlet.RenderRequest request,
                                javax.portlet.RenderResponse response)
                         throws javax.portlet.PortletException,
                                java.io.IOException

      Overrides:
        `doView` in class `javax.portlet.GenericPortlet`
      Throws:
        `javax.portlet.PortletException`
        `java.io.IOException`

    - #### serveResource

          public void serveResource​(javax.portlet.ResourceRequest request,
                                    javax.portlet.ResourceResponse response)
                             throws javax.portlet.PortletException,
                                    java.io.IOException

      Process AJAX request here instead of DHtmlUpdateServlet if the Portal Container support JSR 286.
      Specified by:
        `serveResource` in interface `javax.portlet.ResourceServingPortlet`
      Overrides:
        `serveResource` in class `javax.portlet.GenericPortlet`
      Throws:
        `javax.portlet.PortletException`
        `java.io.IOException`
      Since:
        6.5.2

    - #### process

          protected boolean process​(Session sess,
                                    javax.portlet.RenderRequest request,
                                    javax.portlet.RenderResponse response,
                                    java.lang.String path,
                                    boolean bRichlet)
                             throws javax.portlet.PortletException,
                                    java.io.IOException

      Process a portlet request.
      Returns:
        false if the page is not found.
      Throws:
        `javax.portlet.PortletException`
        `java.io.IOException`
      Since:
        3.0.0

    - #### getNamespace

          protected java.lang.String getNamespace​(javax.portlet.RenderResponse response)

      Returns the namespace for resource request parameters

      Default: "".

      Since:
        6.5.6