[
http://jira.jboss.com/jira/browse/JBSEAM-1720?page=all ]
Pete Muir updated JBSEAM-1720:
------------------------------
Component/s: Portal
(was: Core)
s:link doesnt work correctly in a portlet
-----------------------------------------
Key: JBSEAM-1720
URL:
http://jira.jboss.com/jira/browse/JBSEAM-1720
Project: JBoss Seam
Issue Type: Bug
Components: Portal
Affects Versions: 2.0.0.BETA1
Reporter: Chris Rudd
When using a s:link inside a portlet application the actionMethod/etc are not properly
processed.
Ive traced this down, the current SeamPhaseListener processes pageActions and the
s:link/s:button as part of the beforeRender processing. The actionMethod/actionOutcome/etc
parameters are only passed to the portlet during the processAction portlet request. The
beforeRender is executed during the doView portlet request, which doesnt have access to
those parameters.
One possible solution is to pass those parameters as renderparameters via the
SeamPhaseListener.setPortletRenderParameter so that they are accessible to the doView
render process.
I think the better solution is to have all that processing occur during the processAction
phase instead of the doView phase.
The following change seems to work :
SeamPhaseListener.afterPortletPhase line 258
+ // Use the getRenderResponse flag to indicate that we have hit the end of the last
phase that will
+ // be processed before the render. Handle the beforeRender at this time, as the
next phase to
+ // occur should be RENDER_RESPONSE
+ if( event.getPhaseId() != RENDER_RESPONSE &&
(facesContext.getRenderResponse() || event.getPhaseId() == INVOKE_APPLICATION )
+ beforeRender(event);
+
FacesMessages.afterPhase();
After this change (and JBSEAM-1719) s:link/s:button works under jboss-portal 2.6
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira