You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sc...@apache.org on 2006/02/14 04:37:49 UTC

svn commit: r377600 - /myfaces/core/branches/1_1_2/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java

Author: schof
Date: Mon Feb 13 19:37:47 2006
New Revision: 377600

URL: http://svn.apache.org/viewcvs?rev=377600&view=rev
Log:
Fixes MYFACES-1027 (Patch by Howard Abrams)

Modified:
    myfaces/core/branches/1_1_2/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java

Modified: myfaces/core/branches/1_1_2/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java
URL: http://svn.apache.org/viewcvs/myfaces/core/branches/1_1_2/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java?rev=377600&r1=377599&r2=377600&view=diff
==============================================================================
--- myfaces/core/branches/1_1_2/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java (original)
+++ myfaces/core/branches/1_1_2/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java Mon Feb 13 19:37:47 2006
@@ -80,17 +80,8 @@
             throw new JspException(e);
         }
 
-        StateManager stateManager = facesContext.getApplication().getStateManager();
-        if (stateManager.isSavingStateInClient(facesContext))
-        {
-            if (log.isTraceEnabled()) log.trace("leaving ViewTag.doStartTag");
-            return BodyTag.EVAL_BODY_BUFFERED;
-        }
-        else
-        {
-            if (log.isTraceEnabled()) log.trace("leaving ViewTag.doStartTag");
-            return BodyTag.EVAL_BODY_INCLUDE;
-        }
+        if (log.isTraceEnabled()) log.trace("leaving ViewTag.doStartTag");
+        return BodyTag.EVAL_BODY_BUFFERED;
     }
 
     protected boolean isSuppressed()
@@ -114,13 +105,6 @@
             throw new JspException(e);
         }
 
-        StateManager stateManager = facesContext.getApplication().getStateManager();
-        if (!stateManager.isSavingStateInClient(facesContext))
-        {
-            //save state in server
-            stateManager.saveSerializedView(facesContext);
-        }
-
         if (log.isTraceEnabled()) log.trace("leaving ViewTag.doEndTag");
         return super.doEndTag();
     }
@@ -147,37 +131,44 @@
                     facesContext.setResponseWriter(realWriter);
 
                     String bodyStr = bodyContent.getString();
-                    int form_marker = bodyStr.indexOf(JspViewHandlerImpl.FORM_STATE_MARKER);
-                    int url_marker = bodyStr.indexOf(HtmlLinkRendererBase.URL_STATE_MARKER);
-                    int lastMarkerEnd = 0;
-                    while (form_marker != -1 || url_marker != -1)
+                    if ( stateManager.isSavingStateInClient(facesContext) )
                     {
-                        if (url_marker == -1 || (form_marker != -1 && form_marker < url_marker))
-                        {
-                            //replace form_marker
-                            realWriter.write(bodyStr, lastMarkerEnd, form_marker - lastMarkerEnd);
-                            stateManager.writeState(facesContext, serializedView);
-                            lastMarkerEnd = form_marker + JspViewHandlerImpl.FORM_STATE_MARKER_LEN;
-                            form_marker = bodyStr.indexOf(JspViewHandlerImpl.FORM_STATE_MARKER, lastMarkerEnd);
-                        }
-                        else
+                        int form_marker = bodyStr.indexOf(JspViewHandlerImpl.FORM_STATE_MARKER);
+                        int url_marker = bodyStr.indexOf(HtmlLinkRendererBase.URL_STATE_MARKER);
+                        int lastMarkerEnd = 0;
+                        while (form_marker != -1 || url_marker != -1)
                         {
-                            //replace url_marker
-                            realWriter.write(bodyStr, lastMarkerEnd, url_marker - lastMarkerEnd);
-                            if (stateManager instanceof MyfacesStateManager)
+                            if (url_marker == -1 || (form_marker != -1 && form_marker < url_marker))
                             {
-                                ((MyfacesStateManager)stateManager).writeStateAsUrlParams(facesContext,
-                                                                                          serializedView);
+                                //replace form_marker
+                                realWriter.write(bodyStr, lastMarkerEnd, form_marker - lastMarkerEnd);
+                                stateManager.writeState(facesContext, serializedView);
+                                lastMarkerEnd = form_marker + JspViewHandlerImpl.FORM_STATE_MARKER_LEN;
+                                form_marker = bodyStr.indexOf(JspViewHandlerImpl.FORM_STATE_MARKER, lastMarkerEnd);
                             }
                             else
                             {
-                                log.error("Current StateManager is no MyfacesStateManager and does not support saving state in url parameters.");
+                                //replace url_marker
+                                realWriter.write(bodyStr, lastMarkerEnd, url_marker - lastMarkerEnd);
+                                if (stateManager instanceof MyfacesStateManager)
+                                {
+                                    ((MyfacesStateManager)stateManager).writeStateAsUrlParams(facesContext,
+                                                                                              serializedView);
+                                }
+                                else
+                                {
+                                    log.error("Current StateManager is no MyfacesStateManager and does not support saving state in url parameters.");
+                                }
+                                lastMarkerEnd = url_marker + HtmlLinkRendererBase.URL_STATE_MARKER_LEN;
+                                url_marker = bodyStr.indexOf(HtmlLinkRendererBase.URL_STATE_MARKER, lastMarkerEnd);
                             }
-                            lastMarkerEnd = url_marker + HtmlLinkRendererBase.URL_STATE_MARKER_LEN;
-                            url_marker = bodyStr.indexOf(HtmlLinkRendererBase.URL_STATE_MARKER, lastMarkerEnd);
                         }
+                        realWriter.write(bodyStr, lastMarkerEnd, bodyStr.length() - lastMarkerEnd);
+                    }
+                    else
+                    {
+                        realWriter.write( bodyStr );
                     }
-                    realWriter.write(bodyStr, lastMarkerEnd, bodyStr.length() - lastMarkerEnd);
                 }
                 else
                 {