You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by st...@apache.org on 2010/08/11 19:33:45 UTC

svn commit: r984486 - /myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextManager.java

Author: struberg
Date: Wed Aug 11 17:33:44 2010
New Revision: 984486

URL: http://svn.apache.org/viewvc?rev=984486&view=rev
Log:
EXTCDI-42 add request parameters to redirect.

This is needed to pass over f:viewParams

Modified:
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextManager.java

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextManager.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextManager.java?rev=984486&r1=984485&r2=984486&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextManager.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextManager.java Wed Aug 11 17:33:44 2010
@@ -478,6 +478,29 @@ public class DefaultWindowContextManager
             String targetURL = facesContext.getApplication()
                     .getViewHandler().getActionURL(facesContext, facesContext.getViewRoot().getViewId());
 
+
+            char delimiter = '?';
+            if (targetURL.contains("?"))
+            {
+                delimiter = '&';
+            }
+
+            // add any given RequestParameters other than the windowId.
+            // this is e.g. needed for f:viewParam handling
+            Map<String, String> requestParms = facesContext.getExternalContext().getRequestParameterMap();
+            for(Map.Entry<String, String> requestParam : requestParms.entrySet())
+            {
+                String key = requestParam.getKey();
+                if (key.equals(WINDOW_CONTEXT_ID_PARAMETER_KEY))
+                {
+                    continue;
+                }
+
+                targetURL += delimiter + key + "=" + requestParam.getValue();
+                delimiter = '&';
+            }
+
+
             this.windowHandler.sendRedirect(FacesContext.getCurrentInstance().getExternalContext(), targetURL);
         }
         catch (IOException e)