-
Type:
Technical Task
-
Status: Closed
-
Priority:
Minor
-
Resolution: Completed
-
Affects Version/s: None
-
Fix Version/s: 7.0.0 DXP FP19, 7.0.3 CE GA4, 7.0.0 DXP SP4, 7.0.X EE, Master
-
Component/s: None
-
Branch Version/s:7.0.x
-
Backported to Branch:Committed
-
Sprint:Daenerys Targaryen
-
Git Pull Request:
Problem Background
When MimeResponse.createActionURL().toString() or MimeResponse.createRenderURL().toString() is called, Liferay Portal's PortletURLImpl.toString() method will append the "p_p_id" URL parameter for the current portlet (the target portlet of the URL). If there are any public render parameters set, each one will be appended to the URL with the "p_r_p_" prefix. When the browser dispatches a request to the ActionURL/RenderURL, Liferay Portal will set the value(s) of each public render parameter, provided that the "p_p_id" parameter is present in the URL.
The problem is that there is no way to specify a public render parameter on a Liferay Portal page URL in which there is no specific target portlet. In other words, it is not possible to simply specify a URL like http://localhost:8080/web/guest?p_r_p_myPRP=123" and expect the portlets on the page to receive the value of "1234" for the "myPRP" public render parameter.
Steps to Reproduce
1. Deploy the attached com.liferay.issue.lps72742.portlet.war artifact to $LIFERAY_HOME/deploy
2. Add the "lps72742-a", "lps72742-b", and "lps72472-c" portlets to a portal page
3. Reload the page
4. Append "?p_r_p_myPRP=123" to the end of the URL in the browser's address bar and press enter.
Expected Results
The "lps72742-a" and "lps72742-c" portlets should indicate:
Current myPRP value=123
Also, the "lps72742-b" portlet should indicate:
Current myPRP value=null
Actual Results
All three portlets indicate:
Current myPRP value=null
- causes
-
LPS-75244 During the ACTION_PHASE, public render parameter values are set once, then appended again
- Closed