You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mc...@apache.org on 2009/09/03 19:36:33 UTC
svn commit: r811053 -
/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java
Author: mconcini
Date: Thu Sep 3 17:36:32 2009
New Revision: 811053
URL: http://svn.apache.org/viewvc?rev=811053&view=rev
Log:
MYFACES-2334 - don't automatically ignore null outcomes
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java?rev=811053&r1=811052&r2=811053&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java Thu Sep 3 17:36:32 2009
@@ -69,12 +69,6 @@
@Override
public void handleNavigation(FacesContext facesContext, String fromAction, String outcome)
{
- if (outcome == null)
- {
- // stay on current ViewRoot
- return;
- }
-
NavigationCase navigationCase = getNavigationCase(facesContext, fromAction, outcome);
if (navigationCase != null)
@@ -176,15 +170,15 @@
}
}
- if (navigationCase == null)
+ if (outcome != null && navigationCase == null)
{
- // Still can't find a navigation case, so we need to look at the outcome and see what navigation case
- // can be determined from it.
-
+ //if outcome is null, we don't check outcome based nav cases
+ //otherwise, if navgiationCase is still null, check outcome-based nav cases
navigationCase = getOutcomeNavigationCase (facesContext, fromAction, outcome);
}
-
- return navigationCase;
+
+ return navigationCase; //if navigationCase == null, will stay on current view
+
}
/**
@@ -333,7 +327,12 @@
boolean ifMatches = (cazeIf == null ? false : cazeIf.booleanValue());
// JSF 2.0: support conditional navigation via <if>.
// Use for later cases.
-
+
+ if(outcome == null && (cazeOutcome != null || cazeIf == null))
+ {
+ continue; //To match an outcome value of null, the <from-outcome> must be absent and the <if> element present.
+ }
+
if (cazeActionRef != null) {
if (cazeOutcome != null) {
if ((actionRef != null) && (outcome != null) && cazeActionRef.equals (actionRef) &&