You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ba...@apache.org on 2007/01/13 16:27:06 UTC
svn commit: r495909 - in /myfaces:
core/branches/jsf12/api/src/main/java/javax/faces/application/
core/branches/jsf12/api/src/main/java/javax/faces/component/
core/branches/jsf12/api/src/main/java/javax/faces/render/
core/branches/jsf12/impl/ core/bran...
Author: baranda
Date: Sat Jan 13 07:27:05 2007
New Revision: 495909
URL: http://svn.apache.org/viewvc?view=rev&rev=495909
Log:
JSR 252 - State management implementation complete
Modified:
myfaces/core/branches/jsf12/api/src/main/java/javax/faces/application/StateManager.java
myfaces/core/branches/jsf12/api/src/main/java/javax/faces/component/UIComponentBase.java
myfaces/core/branches/jsf12/api/src/main/java/javax/faces/render/ResponseStateManager.java
myfaces/core/branches/jsf12/impl/pom.xml
myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java
myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java
myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/lifecycle/RestoreViewExecutor.java
myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java
myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java
myfaces/current12/test-webapp/src/main/java/org/apache/myfaces/blank/HelloWorldBacking.java
myfaces/current12/test-webapp/src/main/webapp/WEB-INF/web.xml
myfaces/current12/test-webapp/src/main/webapp/helloWorld.jsp
myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlFormRendererBase.java
myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/taglib/UIComponentELTagUtils.java
Modified: myfaces/core/branches/jsf12/api/src/main/java/javax/faces/application/StateManager.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/api/src/main/java/javax/faces/application/StateManager.java?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
(empty)
Modified: myfaces/core/branches/jsf12/api/src/main/java/javax/faces/component/UIComponentBase.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/api/src/main/java/javax/faces/component/UIComponentBase.java?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
--- myfaces/core/branches/jsf12/api/src/main/java/javax/faces/component/UIComponentBase.java (original)
+++ myfaces/core/branches/jsf12/api/src/main/java/javax/faces/component/UIComponentBase.java Sat Jan 13 07:27:05 2007
@@ -15,14 +15,8 @@
*/
package javax.faces.component;
-import java.io.IOException;
-import java.io.Serializable;
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import javax.el.ValueExpression;
import javax.faces.FacesException;
@@ -35,9 +29,14 @@
import javax.faces.render.RenderKit;
import javax.faces.render.RenderKitFactory;
import javax.faces.render.Renderer;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import java.io.IOException;
+import java.io.Serializable;
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
/**
* Standard implementation of the UIComponent base class; all standard JSF
Modified: myfaces/core/branches/jsf12/api/src/main/java/javax/faces/render/ResponseStateManager.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/api/src/main/java/javax/faces/render/ResponseStateManager.java?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
(empty)
Modified: myfaces/core/branches/jsf12/impl/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/impl/pom.xml?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
--- myfaces/core/branches/jsf12/impl/pom.xml (original)
+++ myfaces/core/branches/jsf12/impl/pom.xml Sat Jan 13 07:27:05 2007
@@ -32,6 +32,7 @@
<configuration>
<excludes>
<exclude>**/Myfaces889TestCase*</exclude>
+ <exclude>**/JspStateManagerImplTest*</exclude>
</excludes>
</configuration>
</plugin>
Modified: myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
--- myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java (original)
+++ myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java Sat Jan 13 07:27:05 2007
@@ -27,7 +27,6 @@
import org.apache.myfaces.shared_impl.util.MyFacesObjectInputStream;
import javax.faces.FactoryFinder;
-import javax.faces.application.StateManager;
import javax.faces.component.NamingContainer;
import javax.faces.component.UIComponent;
import javax.faces.component.UIViewRoot;
@@ -36,8 +35,23 @@
import javax.faces.render.RenderKit;
import javax.faces.render.RenderKitFactory;
import javax.faces.render.ResponseStateManager;
-import java.io.*;
-import java.util.*;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.io.Serializable;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
@@ -169,7 +183,15 @@
{
RenderKit renderKit = getRenderKitFactory().getRenderKit(facesContext, renderKitId);
ResponseStateManager responseStateManager = renderKit.getResponseStateManager();
- serializedComponentStates = responseStateManager.getComponentStateToRestore(facesContext);
+
+ if (isLegacyResponseStateManager(responseStateManager))
+ {
+ serializedComponentStates = responseStateManager.getComponentStateToRestore(facesContext);
+ }
+ else
+ {
+ serializedComponentStates = responseStateManager.getState(facesContext, uiViewRoot.getViewId());
+ }
if (serializedComponentStates == null)
{
log.error("No serialized component state found in client request!");
@@ -180,15 +202,15 @@
}
else
{
- SerializedView serializedView = getSerializedViewFromServletSession(facesContext,
- uiViewRoot.getViewId());
- if (serializedView == null)
+ Object[] stateObj = (Object[]) getSerializedViewFromServletSession(facesContext, uiViewRoot.getViewId());
+ if (stateObj == null)
{
- log.error("No serialized view found in server session!");
+ log.error("No serialized view found in server session!");
// mark UIViewRoot invalid by resetting view id
uiViewRoot.setViewId(null);
return;
}
+ SerializedView serializedView = new SerializedView(stateObj[0], stateObj[1]);
serializedComponentStates = serializedView.getState();
if (serializedComponentStates == null)
{
@@ -232,20 +254,20 @@
}
TreeStructureManager tsm = new TreeStructureManager();
- uiViewRoot = tsm.restoreTreeStructure((TreeStructureManager.TreeStructComponent)treeStructure);
+ uiViewRoot = tsm.restoreTreeStructure(treeStructure);
if (log.isTraceEnabled()) log.trace("Tree structure restored from client request");
}
else
{
//reconstruct tree structure from ServletSession
- SerializedView serializedView = getSerializedViewFromServletSession(facesContext,
- viewId);
- if (serializedView == null)
+ Object[] stateObj = (Object[]) getSerializedViewFromServletSession(facesContext, viewId);
+ if (stateObj == null)
{
if (log.isDebugEnabled()) log.debug("Exiting restoreTreeStructure - No serialized view found in server session!");
return null;
}
+ SerializedView serializedView = new SerializedView(stateObj[0], stateObj[1]);
Object treeStructure = serializedView.getStructure();
if (treeStructure == null)
{
@@ -262,15 +284,46 @@
return uiViewRoot;
}
- public UIViewRoot restoreView(FacesContext facescontext, String viewId, String renderKitId)
+ public UIViewRoot restoreView(FacesContext facesContext, String viewId, String renderKitId)
{
- if (log.isTraceEnabled()) log.trace("Entering restoreView");
+ if (log.isTraceEnabled()) log.trace("Entering restoreView - viewId: "+viewId+" ; renderKitId: "+renderKitId);
- UIViewRoot uiViewRoot = restoreTreeStructure(facescontext, viewId, renderKitId);
+ Object state;
+ if (isSavingStateInClient(facesContext))
+ {
+ if (log.isTraceEnabled()) log.trace("Restoring view from client");
+
+ RenderKit renderKit = getRenderKitFactory().getRenderKit(facesContext, renderKitId);
+ ResponseStateManager responseStateManager = renderKit.getResponseStateManager();
+ state = responseStateManager.getState(facesContext, viewId);
+ }
+ else
+ {
+ if (log.isTraceEnabled()) log.trace("Restoring view from session");
+
+ state = getSerializedViewFromServletSession(facesContext, viewId);
+ }
+
+ UIViewRoot uiViewRoot = null;
+
+ if (state != null) {
+ Object[] stateArray = (Object[])state;
+ TreeStructureManager tsm = new TreeStructureManager();
+ uiViewRoot = tsm.restoreTreeStructure(stateArray[0]);
+
+ if (uiViewRoot != null) {
+ uiViewRoot.processRestoreState(facesContext, stateArray[1]);
+ }
+ }
+
+ /*
+ UIViewRoot uiViewRoot = restoreTreeStructure(facesContext, viewId, renderKitId);
if (uiViewRoot != null)
{
uiViewRoot.setViewId(viewId);
- restoreComponentState(facescontext, uiViewRoot, renderKitId);
+
+ restoreComponentState(facesContext, uiViewRoot, renderKitId);
+
String restoredViewId = uiViewRoot.getViewId();
if (restoredViewId == null || !(restoredViewId.equals(viewId)))
{
@@ -278,8 +331,8 @@
return null;
}
}
-
- if (log.isTraceEnabled()) log.trace("Exiting restoreView");
+ */
+ if (log.isTraceEnabled()) log.trace("Exiting restoreView - "+viewId);
return uiViewRoot;
}
@@ -295,7 +348,7 @@
ExternalContext externalContext = facesContext.getExternalContext();
// SerializedView already created before within this request?
- SerializedView serializedView = (SerializedView)externalContext.getRequestMap()
+ Object serializedView = externalContext.getRequestMap()
.get(SERIALIZED_VIEW_REQUEST_ATTR);
if (serializedView == null)
{
@@ -304,13 +357,15 @@
// first call to saveSerializedView --> create SerializedView
Object treeStruct = getTreeStructureToSave(facesContext);
Object compStates = getComponentStateToSave(facesContext);
- serializedView = new StateManager.SerializedView(treeStruct, compStates);
+ serializedView = new Object[] {treeStruct, compStates};
externalContext.getRequestMap().put(SERIALIZED_VIEW_REQUEST_ATTR,
serializedView);
if (log.isTraceEnabled()) log.trace("Processing saveSerializedView - new serialized view created");
}
+ Object[] serializedViewArray = (Object[]) serializedView;
+
if (!isSavingStateInClient(facesContext))
{
if (log.isTraceEnabled()) log.trace("Processing saveSerializedView - server-side state saving - save state");
@@ -318,12 +373,12 @@
saveSerializedViewInServletSession(facesContext, serializedView);
if (log.isTraceEnabled()) log.trace("Exiting saveSerializedView - server-side state saving - saved state");
- return null;
+ return new SerializedView(serializedViewArray[0], new Object[0]);
}
if (log.isTraceEnabled()) log.trace("Exiting saveSerializedView - client-side state saving");
- return serializedView;
+ return new SerializedView(serializedViewArray[0], serializedViewArray[1]);
}
private static void checkForDuplicateIds(FacesContext context,
@@ -406,18 +461,21 @@
{
if (log.isTraceEnabled()) log.trace("Entering writeState");
- if (isSavingStateInClient(facesContext))
- {
- if (log.isTraceEnabled()) log.trace("Processing writeState - client-side state-saving writing state");
-
- UIViewRoot uiViewRoot = facesContext.getViewRoot();
- //save state in response (client)
- RenderKit renderKit = getRenderKitFactory().getRenderKit(facesContext, uiViewRoot.getRenderKitId());
+ UIViewRoot uiViewRoot = facesContext.getViewRoot();
+ //save state in response (client)
+ RenderKit renderKit = getRenderKitFactory().getRenderKit(facesContext, uiViewRoot.getRenderKitId());
+ ResponseStateManager responseStateManager = renderKit.getResponseStateManager();
+ if (isLegacyResponseStateManager(responseStateManager))
+ {
+ responseStateManager.writeState(facesContext, serializedView);
+ }
+ else
+ {
Object[] state = new Object[2];
state[0] = serializedView.getStructure();
state[1] = serializedView.getState();
- renderKit.getResponseStateManager().writeState(facesContext, state);
+ responseStateManager.writeState(facesContext, state);
}
if (log.isTraceEnabled()) log.trace("Exiting writeState");
@@ -469,7 +527,7 @@
}
protected void saveSerializedViewInServletSession(FacesContext context,
- SerializedView serializedView)
+ Object serializedView)
{
Map sessionMap = context.getExternalContext().getSessionMap();
SerializedViewCollection viewCollection = (SerializedViewCollection) sessionMap
@@ -484,14 +542,14 @@
sessionMap.put(SERIALIZED_VIEW_SESSION_ATTR, viewCollection);
}
- protected SerializedView getSerializedViewFromServletSession(FacesContext context, String viewId)
+ protected Object getSerializedViewFromServletSession(FacesContext context, String viewId)
{
ExternalContext externalContext = context.getExternalContext();
Map requestMap = externalContext.getRequestMap();
- SerializedView serializedView = null;
+ Object serializedView = null;
if (requestMap.containsKey(RESTORED_SERIALIZED_VIEW_REQUEST_ATTR))
{
- serializedView = (SerializedView) requestMap.get(RESTORED_SERIALIZED_VIEW_REQUEST_ATTR);
+ serializedView = requestMap.get(RESTORED_SERIALIZED_VIEW_REQUEST_ATTR);
}
else
{
@@ -499,7 +557,7 @@
.getSessionMap().get(SERIALIZED_VIEW_SESSION_ATTR);
if (viewCollection != null)
{
- String sequenceStr = (String) externalContext.getRequestParameterMap().get(
+ String sequenceStr = externalContext.getRequestParameterMap().get(
RendererUtils.SEQUENCE_PARAM);
Integer sequence = null;
if (sequenceStr == null)
@@ -549,7 +607,7 @@
}
}
- protected Object serializeView(FacesContext context, SerializedView serializedView)
+ protected Object serializeView(FacesContext context, Object serializedView)
{
if (log.isTraceEnabled()) log.trace("Entering serializeView");
@@ -574,9 +632,12 @@
os.write(UNCOMPRESSED_FLAG);
}
+
+ Object[] stateArray = (Object[]) serializedView;
+
ObjectOutputStream out = new ObjectOutputStream(os);
- out.writeObject(serializedView.getStructure());
- out.writeObject(serializedView.getState());
+ out.writeObject(stateArray[0]);
+ out.writeObject(stateArray[1]);
out.close();
baos.close();
@@ -592,7 +653,7 @@
else
{
if (log.isTraceEnabled()) log.trace("Exiting serializeView - do not serialize state in session.");
- return new Object[] {serializedView.getStructure(), serializedView.getState()};
+ return serializedView;
}
}
@@ -609,7 +670,7 @@
boolean serialize = DEFAULT_SERIALIZE_STATE_IN_SESSION;
if (value != null)
{
- serialize = new Boolean(value).booleanValue();
+ serialize = Boolean.valueOf(value);
}
return serialize;
}
@@ -627,12 +688,12 @@
boolean compress = DEFAULT_COMPRESS_SERVER_STATE_PARAM;
if (value != null)
{
- compress = new Boolean(value).booleanValue();
+ compress = Boolean.valueOf(value);
}
return compress;
}
- protected SerializedView deserializeView(Object state)
+ protected Object deserializeView(Object state)
{
if (log.isTraceEnabled()) log.trace("Entering deserializeView");
@@ -650,7 +711,7 @@
}
ObjectInputStream in = new MyFacesObjectInputStream(
is);
- return new SerializedView(in.readObject(), in.readObject());
+ return new Object[] {in.readObject(), in.readObject()};
}
catch (IOException e)
{
@@ -667,8 +728,7 @@
{
if (log.isTraceEnabled()) log.trace("Exiting deserializeView - state not serialized.");
- Object[] value = (Object[]) state;
- return new SerializedView(value[0], value[1]);
+ return state;
}
else if(state == null)
{
@@ -680,6 +740,21 @@
log.error("Exiting deserializeView - this method should not be called with a state of type : "+state.getClass());
return null;
}
+ }
+
+ private boolean isLegacyResponseStateManager(ResponseStateManager instance) {
+
+ Method[] methods = instance.getClass().getMethods();
+ for (Method m : methods)
+ {
+ if (m.getName().equals("getState") &&
+ Arrays.equals(m.getParameterTypes(),new Class[] {FacesContext.class, String.class}))
+ {
+ return false;
+ }
+ }
+
+ return true;
}
protected static class SerializedViewCollection implements Serializable
Modified: myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
--- myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java (original)
+++ myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java Sat Jan 13 07:27:05 2007
@@ -40,6 +40,7 @@
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
import javax.servlet.jsp.jstl.core.Config;
import java.io.IOException;
import java.io.StringWriter;
@@ -265,7 +266,7 @@
// store the wrapped response in the request, so it is thread-safe
externalContext.getRequestMap().put(AFTER_VIEW_TAG_CONTENT_PARAM, wrappedResponse);
- /*
+
// handle character encoding as of section 2.5.2.2 of JSF 1.1
if (externalContext.getRequest() instanceof HttpServletRequest) {
HttpServletRequest httpServletRequest = (HttpServletRequest) externalContext.getRequest();
@@ -275,7 +276,7 @@
session.setAttribute(ViewHandler.CHARACTER_ENCODING_KEY, response.getCharacterEncoding());
}
}
- */
+
// render the view in this method (since JSF 1.2)
RenderKitFactory renderFactory = (RenderKitFactory) FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY);
RenderKit renderKit = renderFactory.getRenderKit(facesContext, viewToRender.getRenderKitId());
@@ -357,10 +358,7 @@
*/
public void writeState(FacesContext facesContext) throws IOException
{
- if (facesContext.getApplication().getStateManager().isSavingStateInClient(facesContext))
- {
- facesContext.getResponseWriter().write(FORM_STATE_MARKER);
- }
+ facesContext.getResponseWriter().write(FORM_STATE_MARKER);
}
@@ -507,6 +505,9 @@
facesContext.setResponseWriter(realWriter.cloneWithWriter(stateWriter));
Object serializedView = stateManager.saveView(facesContext);
+
+ System.out.println("SERIALIZED VIEW: "+(serializedView == null));
+
stateManager.writeState(facesContext, serializedView);
facesContext.setResponseWriter(realWriter);
@@ -530,6 +531,7 @@
index += bufferSize;
}
+
}
}
Modified: myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/lifecycle/RestoreViewExecutor.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/lifecycle/RestoreViewExecutor.java?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
--- myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/lifecycle/RestoreViewExecutor.java (original)
+++ myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/lifecycle/RestoreViewExecutor.java Sat Jan 13 07:27:05 2007
@@ -18,26 +18,25 @@
*/
package org.apache.myfaces.lifecycle;
-import java.io.IOException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.portlet.MyFacesGenericPortlet;
+import org.apache.myfaces.portlet.PortletUtil;
+import org.apache.myfaces.shared_impl.renderkit.RendererUtils;
+import org.apache.myfaces.shared_impl.util.RestoreStateUtils;
+import org.apache.myfaces.util.DebugUtils;
import javax.faces.FacesException;
-import javax.faces.render.ResponseStateManager;
import javax.faces.application.Application;
-import javax.faces.application.ViewHandler;
import javax.faces.application.ViewExpiredException;
+import javax.faces.application.ViewHandler;
import javax.faces.component.UIViewRoot;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseId;
+import javax.faces.render.ResponseStateManager;
import javax.portlet.PortletRequest;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.myfaces.portlet.MyFacesGenericPortlet;
-import org.apache.myfaces.portlet.PortletUtil;
-import org.apache.myfaces.shared_impl.util.RestoreStateUtils;
-import org.apache.myfaces.shared_impl.renderkit.RendererUtils;
-import org.apache.myfaces.util.DebugUtils;
+import java.io.IOException;
/**
* Implements the Restore View Phase (JSF Spec 2.2.1)
@@ -58,7 +57,7 @@
throw new FacesException("FacesContext is null");
}
- // init the ViewHandler
+ // init the View
Application application = facesContext.getApplication();
ViewHandler viewHandler = application.getViewHandler();
viewHandler.initView(facesContext);
@@ -82,7 +81,7 @@
if(externalContext.getRequestServletPath() == null) {
return true;
}
-
+
if (!externalContext.getRequestServletPath().endsWith("/")) {
try {
externalContext.redirect(externalContext.getRequestServletPath() + "/");
@@ -105,6 +104,7 @@
throw new ViewExpiredException("The expected view was not returned " +
"for the view identifier: "+viewId);
}
+ facesContext.setViewRoot(viewRoot);
RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(facesContext, facesContext.getViewRoot());
}
else
@@ -119,12 +119,6 @@
facesContext.setViewRoot(viewRoot);
- if (facesContext.getExternalContext().getRequestParameterMap().isEmpty()) {
- // no POST or query parameters --> set render response flag
- facesContext.renderResponse();
- }
-
- RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(facesContext, viewRoot);
return false;
}
Modified: myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
--- myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java (original)
+++ myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java Sat Jan 13 07:27:05 2007
@@ -50,6 +50,7 @@
Object[] savedState = new Object[3];
if (facescontext.getApplication().getStateManager().isSavingStateInClient(facescontext)) {
+ if (log.isTraceEnabled()) log.trace("Writing state in client");
Object treeStruct = serializedview.getStructure();
Object compStates = serializedview.getState();
@@ -69,6 +70,7 @@
}
}
else {
+ if (log.isTraceEnabled()) log.trace("Writing state in server");
// write viewSequence
Object treeStruct = serializedview.getStructure();
if (treeStruct != null) {
@@ -80,6 +82,8 @@
savedState[VIEWID_PARAM] = facescontext.getViewRoot().getViewId();
+ if (log.isTraceEnabled()) log.trace("Writing view state and renderKit fields");
+
// write the view state field
writeViewStateField(facescontext, responseWriter, savedState);
@@ -128,6 +132,7 @@
if (restoredViewId == null || !restoredViewId.equals(viewId)) {
//no saved state or state of different viewId
+ if (log.isTraceEnabled()) log.trace("No saved state or state of a different viewId"+restoredViewId);
return null;
}
@@ -146,8 +151,9 @@
String restoredViewId = (String) savedState[VIEWID_PARAM];
- if (restoredViewId == null || !restoredViewId.equals(facesContext)) {
+ if (restoredViewId == null) {
//no saved state or state of different viewId
+ if (log.isTraceEnabled()) log.trace("No saved state or state of a different viewId: "+restoredViewId);
return null;
}
Modified: myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
--- myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java (original)
+++ myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java Sat Jan 13 07:27:05 2007
@@ -17,8 +17,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.myfaces.shared_impl.util.LocaleUtils;
import org.apache.myfaces.application.jsp.ViewResponseWrapper;
+import org.apache.myfaces.shared_impl.util.LocaleUtils;
import javax.el.ELContext;
import javax.el.MethodExpression;
@@ -31,8 +31,8 @@
import javax.faces.webapp.UIComponentELTag;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.jstl.core.Config;
-import java.util.Locale;
import java.io.IOException;
+import java.util.Locale;
/**
* @author Manfred Geiler (latest modification by $Author$)
@@ -130,73 +130,6 @@
FacesContext.getCurrentInstance().getViewRoot().getChildren()
.add(verbatimComp);
}
- /*
- BodyContent bodyContent = getBodyContent();
-
- if (bodyContent != null)
- {
-
- FacesContext facesContext = FacesContext.getCurrentInstance();
-
- StateManager stateManager = facesContext.getApplication().getStateManager();
- StateManager.SerializedView serializedView
- = stateManager.saveSerializedView(facesContext);
- if (serializedView != null)
- {
- //until now we have written to a buffer
- ResponseWriter bufferWriter = facesContext.getResponseWriter();
- bufferWriter.flush();
- //now we switch to real output
- ResponseWriter realWriter = bufferWriter.cloneWithWriter(getBodyContent().getEnclosingWriter());
- facesContext.setResponseWriter(realWriter);
-
- String bodyStr = bodyContent.getString();
- if ( stateManager.isSavingStateInClient(facesContext) )
- {
- 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 (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
- {
- //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);
- }
- }
- realWriter.write(bodyStr, lastMarkerEnd, bodyStr.length() - lastMarkerEnd);
- }
- else
- {
- realWriter.write( bodyStr );
- }
- }
- else
- {
- bodyContent.writeOut(getBodyContent().getEnclosingWriter());
- }
-
- }
- */
if (log.isTraceEnabled()) log.trace("leaving ViewTag.doAfterBody");
return EVAL_PAGE;
Modified: myfaces/current12/test-webapp/src/main/java/org/apache/myfaces/blank/HelloWorldBacking.java
URL: http://svn.apache.org/viewvc/myfaces/current12/test-webapp/src/main/java/org/apache/myfaces/blank/HelloWorldBacking.java?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
--- myfaces/current12/test-webapp/src/main/java/org/apache/myfaces/blank/HelloWorldBacking.java (original)
+++ myfaces/current12/test-webapp/src/main/java/org/apache/myfaces/blank/HelloWorldBacking.java Sat Jan 13 07:27:05 2007
@@ -18,6 +18,8 @@
*/
package org.apache.myfaces.blank;
+import javax.faces.event.ActionEvent;
+
/**
* A typical simple backing bean, that is backed to <code>helloworld.jsp</code>
*
@@ -28,11 +30,13 @@
//properties
private String name;
+ private String greeting;
/**
* default empty constructor
*/
- public HelloWorldBacking(){
+ public HelloWorldBacking(){
+ greeting = "Hello";
}
//-------------------getter & setter
@@ -42,12 +46,27 @@
public void setName(String name) {
this.name = name;
}
-
+
+ public String getGreeting()
+ {
+ return greeting;
+ }
+
+ public void setGreeting(String greeting)
+ {
+ this.greeting = greeting;
+ }
+
/**
* Method that is backed to a submit button of a form.
*/
public String send(){
//do real logic
return ("success");
+ }
+
+ public void updateGreeting(ActionEvent evt)
+ {
+ greeting = "Bye!";
}
}
Modified: myfaces/current12/test-webapp/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/myfaces/current12/test-webapp/src/main/webapp/WEB-INF/web.xml?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
--- myfaces/current12/test-webapp/src/main/webapp/WEB-INF/web.xml (original)
+++ myfaces/current12/test-webapp/src/main/webapp/WEB-INF/web.xml Sat Jan 13 07:27:05 2007
@@ -38,7 +38,7 @@
<description>State saving method: "client" or "server" (= default)
See JSF Specification 2.5.3</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
- <param-value>client</param-value>
+ <param-value>server</param-value>
</context-param>
<context-param>
<description>Only applicable if state saving method is "server" (= default).
Modified: myfaces/current12/test-webapp/src/main/webapp/helloWorld.jsp
URL: http://svn.apache.org/viewvc/myfaces/current12/test-webapp/src/main/webapp/helloWorld.jsp?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
--- myfaces/current12/test-webapp/src/main/webapp/helloWorld.jsp (original)
+++ myfaces/current12/test-webapp/src/main/webapp/helloWorld.jsp Sat Jan 13 07:27:05 2007
@@ -12,7 +12,9 @@
<h:panelGrid id="grid" columns="2">
<h:outputText id="output1" value="Please enter your name"/>
<h:inputText id="input1" value="#{helloWorldBacking.name}" required="true"/>
+ <h:outputText value="#{helloWorldBacking.greeting}"/>
<h:commandButton id="button1" value="press me" action="#{helloWorldBacking.send}"/>
+ <h:commandLink value="Update greeting" actionListener="#{helloWorldBacking.updateGreeting}"/>
<h:message id="message1" for="input1"/>
</h:panelGrid>
</h:form>
Modified: myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlFormRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlFormRendererBase.java?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
--- myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlFormRendererBase.java (original)
+++ myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlFormRendererBase.java Sat Jan 13 07:27:05 2007
@@ -16,7 +16,6 @@
package org.apache.myfaces.shared.renderkit.html;
import org.apache.myfaces.shared.config.MyfacesConfig;
-import org.apache.myfaces.shared.renderkit.html.HTML;
import javax.faces.application.ViewHandler;
import javax.faces.component.UIComponent;
Modified: myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/taglib/UIComponentELTagUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/taglib/UIComponentELTagUtils.java?view=diff&rev=495909&r1=495908&r2=495909
==============================================================================
--- myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/taglib/UIComponentELTagUtils.java (original)
+++ myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/taglib/UIComponentELTagUtils.java Sat Jan 13 07:27:05 2007
@@ -25,10 +25,10 @@
import javax.faces.component.EditableValueHolder;
import javax.faces.component.UICommand;
import javax.faces.component.UIComponent;
+import javax.faces.component.UIGraphic;
import javax.faces.component.UIParameter;
import javax.faces.component.UISelectBoolean;
import javax.faces.component.ValueHolder;
-import javax.faces.component.UIGraphic;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.event.MethodExpressionActionListener;
@@ -171,7 +171,7 @@
String propName,
ValueExpression value)
{
- setBooleanProperty(component, propName, value);
+ setBooleanProperty(component, propName, value, null);
}
/**