Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.7DR#1
-
Component/s: None
-
Labels:None
-
Environment:JBoss 4.2.1, Liferay 4.3.2, Sun RI 1.2 (Embedded in JBoss), Facelets (ICE Faces Implementation)
-
ICEsoft Forum Reference:
Description
Portlet specification (sec. 16.3.2) determines that PortletRequestDispatcher must add "javax.portlet.response" including another Servlet or JSP.
Such an include is done in com.icesoft.faces.webapp.http.portlet.MainPortlet and PortletRequestDispatcher adds corresponding attribut to a request - this attribut is presented in the request passed to the service method of com.icesoft.faces.webapp.http.servlet.MainServlet.
But than this attribute is lost somewhere. I can't get it in my portlet code using facesContext.getExternalContext().getRequestMap().getAttribute("javax.portlet.response").
It is rather important to have such an attribute since it allows to construct direct URL to the portlet and some page inside a portlet (using renderResponse.createRenderURL).
Such an include is done in com.icesoft.faces.webapp.http.portlet.MainPortlet and PortletRequestDispatcher adds corresponding attribut to a request - this attribut is presented in the request passed to the service method of com.icesoft.faces.webapp.http.servlet.MainServlet.
But than this attribute is lost somewhere. I can't get it in my portlet code using facesContext.getExternalContext().getRequestMap().getAttribute("javax.portlet.response").
It is rather important to have such an attribute since it allows to construct direct URL to the portlet and some page inside a portlet (using renderResponse.createRenderURL).
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
This attribute name is not presented around the names returned by request.GetAttributeNames() but it's value returned by request.getAttribute("javax.protlet.response") (see attachment).
I don't know whether this is a Liferay bug or feature but strictly speaking they do exactly what specification says:
"These attributes must be the same Portlet API objects accessible to the portlet doing the
include call. They are accessible from the included servlet or JSP via the
getAttribute method on the HttpServletRequest object."
No any word about request.GetAttributeNames() ...
Show
Vadim Lotarev
added a comment - This attribute name is not presented around the names returned by request.GetAttributeNames() but it's value returned by request.getAttribute("javax.protlet.response") (see attachment).
I don't know whether this is a Liferay bug or feature but strictly speaking they do exactly what specification says:
"These attributes must be the same Portlet API objects accessible to the portlet doing the
include call. They are accessible from the included servlet or JSP via the
getAttribute method on the HttpServletRequest object."
No any word about request.GetAttributeNames() ...
I have a problem with the documentation and the comment above.
The values for the hiddenPortletAttributes are shown to be separated by commas, yet if you look at the source they are split on spaces:
Collection hiddenCustomAttributeNames = Arrays.asList(customPortletAttributes.split(" "));
I am taking that it should be spaces to work now but I would suggest using another delimiter instead, just as you suggest a comma and then update the source to reflect this change.
Collection hiddenCustomAttributeNames = Arrays.asList(customPortletAttributes.split(","));