[seam-issues] [JBoss JIRA] (JBSEAM-5127) SeamNavigationHandler is not JSF2 compliant

Ilia Vassilev (JIRA) jira-events at lists.jboss.org
Thu Sep 19 11:56:04 EDT 2013


     [ https://issues.jboss.org/browse/JBSEAM-5127?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilia Vassilev updated JBSEAM-5127:
----------------------------------

        Workaround Description: 
This will wrap the buggy SeamNavigationHandler and informs the PartialViewContext about view-root changes:

{code}
public class WrapNavigationHandler extends ConfigurableNavigationHandler {
	private final NavigationHandler baseNavigationHandler;
	public PortletNavigationHandler(NavigationHandler navigationHandler)
	{
		this.baseNavigationHandler = navigationHandler;
	}
	@Override
	public void handleNavigation(FacesContext context, String fromAction, String outcome) {
		String oldView = (context.getViewRoot() != null ? context.getViewRoot().getViewId() : "");

		baseNavigationHandler.handleNavigation(context, fromAction, outcome);

		if (!oldView.equals(context.getViewRoot().getViewId())) {
			PartialViewContext pctx = context.getPartialViewContext();
			if (!pctx.isRenderAll()) {
				pctx.setRenderAll(true);
			}
		}

	}
...
}

{code}

                    Workaround: Workaround Exists

    
> SeamNavigationHandler is not JSF2 compliant
> -------------------------------------------
>
>                 Key: JBSEAM-5127
>                 URL: https://issues.jboss.org/browse/JBSEAM-5127
>             Project: Seam 2
>          Issue Type: Bug
>          Components: JSF Integration
>    Affects Versions: 2.3.0.Final
>            Reporter: Ilia Vassilev
>
> From javax.faces.application.NavigationHandler:
> {code}
>      * <p class="changed_added_2_0">This method must set the render targets
>      * (used in partial rendering) to <code>render all </code>
>      * invoking {@link javax.faces.context.PartialViewContext#setRenderAll})
>      * if the view identifier has changed as the result of an application
>      * action (to take into account <code>Ajax requests</code>).</p> 
>     public abstract void handleNavigation(FacesContext context,
>                                           String fromAction,
>                                           String outcome);
> {code}
> org.jboss.seam.jsf.SeamNavigationHandler doesn't implement it and therefore an ajax-view-change cannot be detected by PartialViewContext. Result: nothing will be rendered. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the seam-issues mailing list