Skip to main content

[jsr362-experts:] Portlet 3.0 Alternate Proposal - always use RENDER_PHASE

  • From: Neil Griffin < >
  • To:
  • Subject: [jsr362-experts:] Portlet 3.0 Alternate Proposal - always use RENDER_PHASE
  • Date: Thu, 30 Jan 2014 10:55:54 -0500

Hi everyone,

During our call this week, Julian and Scott provided valuable feedback about 
the Portlet 3.0 Alternate Proposal. Specifically, they commented that the 
Portlet 3.0 Partial Lifecycle would invoke the RENDER_PHASE for Portlet A, 
but subsequent XMLHttpRequests from Portlet B and Portlet C would invoke the 
RESOURCE_PHASE. This works fine for frameworks like JSF, but Java/JSP portlet 
developers would find this confusing because the partial rendering logic 
would have to be duplicated in both doView() and serveResource().

In order to incorporate this feedback, here is what I propose:

1. KEEP the following addition to the Portlet API:
        PortletRequest.isPartial()

2. DON'T ADD the following to the Portlet API:
        MimeResponse.createPartialActionURL()
        <portlet:partialActionURL />

3. INSTEAD, ADD the following to the Portlet API:
        MimeResponse.createActionURL(boolean partial)
        MimeResponse.createRenderURL(boolean partial)
        <portlet:actionURL partial="true|false" /> // Default false for 
backward compatibility
        <portlet:renderURL partial="true|false" /> // Default false for 
backward compatibility

In order to illustrate this, I have updated Figure 4.1 (the Portlet 3.0 
Partial Lifecycle Sequence Diagram). Here is a link to the updated diagram:
http://www.portletfaces.org/downloads/jsr-362/partial-lifecycle-sequence-diagram-2.png

The diagram illustrates that when an XMLHttpRequest targets a RenderURL with 
partial=true, it would ALWAYS be HTTP GET (never HTTP POST). This is because 
RenderURLs have always been associated with HTTP GET and it would be a little 
weird to use HTTP POST. In addition, HTTP POST *might* cause difficulties for 
WSRP. If an HTTP POST is necessary (as is the case with JSF) then a 
ResourceURL could be used, which is what the JSF Portlet Bridge does nowadays 
anyway.

Best Regards to all,

Neil



[jsr362-experts:] Portlet 3.0 Alternate Proposal - always use RENDER_PHASE

Neil Griffin 01/30/2014
 
 
Close
loading
Please Confirm
Close