You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2007/03/28 19:23:11 UTC
svn commit: r523417 -
/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/ajax/api/AjaxResponseRenderer.java
Author: weber
Date: Wed Mar 28 10:23:11 2007
New Revision: 523417
URL: http://svn.apache.org/viewvc?view=rev&rev=523417
Log:
TOBAGO-312 (Integrate handling of ajax requests into standard lifecycle)
bugfix in creating new jsf state
Modified:
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/ajax/api/AjaxResponseRenderer.java
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/ajax/api/AjaxResponseRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/ajax/api/AjaxResponseRenderer.java?view=diff&rev=523417&r1=523416&r2=523417
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/ajax/api/AjaxResponseRenderer.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/ajax/api/AjaxResponseRenderer.java Wed Mar 28 10:23:11 2007
@@ -18,6 +18,8 @@
*/
import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.myfaces.tobago.util.RequestUtils;
import org.apache.myfaces.tobago.util.ResponseUtils;
@@ -43,6 +45,8 @@
public class AjaxResponseRenderer {
+ private static final Log LOG = LogFactory.getLog(AjaxResponseRenderer.class);
+
public static final String CODE_SUCCESS = "<status code=\"200\"/>";
public static final String CODE_NOT_MODIFIED = "<status code=\"304\"/>";
public static final String CODE_RELOAD_REQUIRED = "<status code=\"309\"/>";
@@ -58,6 +62,10 @@
UIViewRoot incommingViewRoot = (UIViewRoot)
facesContext.getExternalContext().getRequestMap().get(VIEW_ROOT_KEY);
if (viewRoot != incommingViewRoot) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("requesting full page reload because of navigation to "
+ + viewRoot.getViewId() + " from " + incommingViewRoot.getViewId());
+ }
//noinspection unchecked
facesContext.getExternalContext().getSessionMap().put(VIEW_ROOT_KEY, viewRoot);
writeResponseReload(facesContext, renderKit);
@@ -70,7 +78,11 @@
responseParts.add(content);
ResponseWriter contentWriter = renderKit.createResponseWriter(content, null, null);
facesContext.setResponseWriter(contentWriter);
- ((AjaxComponent) ajaxComponents.get(i)).encodeAjax(facesContext);
+ AjaxComponent ajaxComponent = ((AjaxComponent) ajaxComponents.get(i));
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("write ajax response for " + ajaxComponent);
+ }
+ ajaxComponent.encodeAjax(facesContext);
}
String state = saveState(facesContext, renderKit);
@@ -97,6 +109,7 @@
facesContext.setResponseWriter(stateWriter);
stateWriter.startElement(HtmlConstants.SCRIPT, null);
stateWriter.writeAttribute(HtmlAttributes.TYPE, "text/javascript", null);
+ stateWriter.flush();
stateWriter.write("Tobago.replaceJsfState(\"");
stateWriter.write(encodeState(state));
stateWriter.write("\");");
@@ -147,6 +160,13 @@
// TODO surround by javascript parsable token
buffer.append(writeState(facesContext, renderKit, jsfState));
}
+
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("\nresponse follows ##############################################################\n"
+ + buffer
+ + "\nend response ##############################################################");
+ }
+
buffer.insert(0, Integer.toHexString(buffer.length()) + "\r\n");
buffer.append("\r\n" + 0 + "\r\n\r\n");