[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-2748) s:link and s:button with a view parameter are preloading the view

Peter Boevink (JIRA) jira-events at lists.jboss.org
Wed Mar 19 05:55:06 EDT 2008

    [ http://jira.jboss.com/jira/browse/JBSEAM-2748?page=comments#action_12403550 ] 
Peter Boevink commented on JBSEAM-2748:

Some more info:
The problem only occurs when the view parameter references a page which has a page.xml that has declared request parameters to be mapped to the model e.g.:
	<param name="userId" value="#{userHome.userId}"/>

Since the 'userId' parameter is not present in my s:link, the paremeter is loaded from the model (userHome), causing the instance to be created in the current conversation.

> s:link and s:button with a view parameter are preloading the view
> -----------------------------------------------------------------
>                 Key: JBSEAM-2748
>                 URL: http://jira.jboss.com/jira/browse/JBSEAM-2748
>             Project: JBoss Seam
>          Issue Type: Bug
>          Components: JSF Controls
>    Affects Versions: 2.1.0.A1
>         Environment: WinXP, jboss-4.2.2.GA, JDK1.5.*, jboss-seam-2.1.0.A1
>            Reporter: Peter Boevink
> Create a JSF view (e.g. UserList.xhtml) which makes use of  <s:link/> or <s:button/> including the 'view' parameter e.g.:
> <s:link view="UserEdit.xhtml"/>
> UserList.seam should be rendered making use of a long-running conversation,  e.g.:
> UserList.page.xml:
> <begin-conversation/>
> The 'UserEdit.page.xml' references a bean by making use of:
> <action execute="#{userHome.wire}"/>
> Now visit the UserList.seam page which holds the s:link reference to UserEdit.xhtml.....
> Don't click this s:link but open the debug.seam page to see what conversations exist with their objects.
> You''ll see a long running conversation (created by UserList.page.xml).
> Surprisingly, this conversation contains a 'userHome' object that should not be created before loading UserEdit.seam!
> Expected behaviour is than a long running conversation without objects.
> Making use of the <s:link/> tag with a typo in the 'view' parameter:
> <s:link view="typo.xhtml"/>
> Creates a long-running conversation without objects.
> So it looks like the page referred by the view parameter is somehow rendered and the beans referred by that page are pre-loaded in the currently active conversation scope.
> This causes undesired behaviour when making use of nested conversation e.g.:
> <s:link view="UserEdit.xhtml" propagation="nest"/>
> or
> <s:link view="UserEdit.xhtml">
>      <s:conversationPropagation type="nested" />
> </s:link>
> The beans referred by the UserEdit.seam page are now loaded in the parent conversation instead of the nested one.

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


More information about the seam-issues mailing list