You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2015/04/01 03:32:03 UTC
svn commit: r1670536 -
/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java
Author: lu4242
Date: Wed Apr 1 01:32:03 2015
New Revision: 1670536
URL: http://svn.apache.org/r1670536
Log:
MYFACES-3949 javax.faces.ViewState autocomplete
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java?rev=1670536&r1=1670535&r2=1670536&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java Wed Apr 1 01:32:03 2015
@@ -38,6 +38,7 @@ import org.apache.myfaces.renderkit.Stat
import org.apache.myfaces.shared.config.MyfacesConfig;
import org.apache.myfaces.shared.renderkit.html.HTML;
import org.apache.myfaces.shared.util.StateUtils;
+import org.apache.myfaces.shared.util.WebConfigParamUtils;
/**
* @author Manfred Geiler (latest modification by $Author$)
@@ -71,14 +72,25 @@ public class HtmlResponseStateManager ex
public static final String INIT_PARAM_HANDLE_STATE_CACHING_MECHANICS
= "org.apache.myfaces.HANDLE_STATE_CACHING_MECHANICS";
+ /**
+ * Add autocomplete="off" to the view state hidden field. Enabled by default.
+ */
+ @JSFWebConfigParam(since="2.2.8, 2.1.18, 2.0.24", expectedValues="true, false",
+ defaultValue="true", group="state")
+ public static final String INIT_PARAM_AUTOCOMPLETE_OFF_VIEW_STATE =
+ "org.apache.myfaces.AUTOCOMPLETE_OFF_VIEW_STATE";
+
private StateCacheFactory _stateCacheFactory;
private StateTokenProcessor _stateTokenProcessor;
+ private Boolean _autoCompleteOffViewState;
+
public HtmlResponseStateManager()
{
_stateCacheFactory = new StateCacheFactoryImpl();
_stateTokenProcessor = new DefaultStateTokenProcessor();
+ _autoCompleteOffViewState = null;
}
@Override
@@ -147,6 +159,10 @@ public class HtmlResponseStateManager ex
facesContext), null);
}
responseWriter.writeAttribute(HTML.VALUE_ATTR, serializedState, null);
+ if (this.isAutocompleteOffViewState(facesContext))
+ {
+ responseWriter.writeAttribute(HTML.AUTOCOMPLETE_ATTR, "off", null);
+ }
responseWriter.endElement(HTML.INPUT_ELEM);
}
@@ -369,4 +385,14 @@ public class HtmlResponseStateManager ex
return STATELESS_TOKEN.equals(token);
}
}
+
+ private boolean isAutocompleteOffViewState(FacesContext facesContext)
+ {
+ if (_autoCompleteOffViewState == null)
+ {
+ _autoCompleteOffViewState = WebConfigParamUtils.getBooleanInitParameter(facesContext.getExternalContext(),
+ INIT_PARAM_AUTOCOMPLETE_OFF_VIEW_STATE, true);
+ }
+ return _autoCompleteOffViewState;
+ }
}