[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