You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by yi...@apache.org on 2010/03/25 21:28:26 UTC
svn commit: r927588 -
/openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/ConversationAwareViewHandler.java
Author: yingwang
Date: Thu Mar 25 20:28:26 2010
New Revision: 927588
URL: http://svn.apache.org/viewvc?rev=927588&view=rev
Log:
[OWB-334] add getRedirectURL method to support jsf 2.0.
Modified:
openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/ConversationAwareViewHandler.java
Modified: openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/ConversationAwareViewHandler.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/ConversationAwareViewHandler.java?rev=927588&r1=927587&r2=927588&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/ConversationAwareViewHandler.java (original)
+++ openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/ConversationAwareViewHandler.java Thu Mar 25 20:28:26 2010
@@ -13,6 +13,9 @@
*/
package org.apache.webbeans.jsf;
+import java.util.List;
+import java.util.Map;
+
import javax.enterprise.context.Conversation;
import javax.faces.application.ViewHandler;
import javax.faces.application.ViewHandlerWrapper;
@@ -54,6 +57,30 @@ public class ConversationAwareViewHandle
* {@inheritDoc}
*/
@Override
+ public String getRedirectURL(FacesContext context, String viewId,
+ Map<String, List<String>> parameters, boolean includeViewParams)
+ {
+ String url = delegate.getRedirectURL(context, viewId, parameters, includeViewParams);
+ int indexOfQuery = url.indexOf('?');
+ if (indexOfQuery > 0)
+ {
+ String queryString = url.substring(indexOfQuery);
+ // If the query string already has a cid parameter, return url directly.
+ if (queryString.contains("?cid=") || queryString.contains("&cid="))
+ return url;
+ }
+ Conversation conversation = conversationManager.getConversationBeanReference();
+ if (conversation != null && !conversation.isTransient())
+ {
+ url = JSFUtil.getRedirectViewIdWithCid(url, conversation.getId());
+ }
+ return url;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public ViewHandler getWrapped()
{
return delegate;