[ 
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
_______________________________________________
seam-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/seam-issues

Reply via email to