public HtmlRenderKitImpl() { _renderers = new HashMap<String, Renderer>(); _responseStateManager = new HtmlResponseStateManager(); }
@Override public Object getState(FacesContext facesContext, String viewId) { Object[] savedState = getSavedState(facesContext); if (savedState == null) { return null; } return new Object[] { savedState[TREE_PARAM], savedState[STATE_PARAM] }; }
@Override public Object getState(FacesContext facesContext, String viewId) { Object[] savedState = getSavedState(facesContext); if (savedState == null) { return null; } if (isHandlingStateCachingMechanics(facesContext)) { return getStateCache(facesContext).restoreSerializedView(facesContext, viewId, savedState[STATE_PARAM]); } else { return savedState[STATE_PARAM]; } }
@Override public Object getState(FacesContext facesContext, String viewId) { Object savedState = getSavedState(facesContext); if (savedState == null) { return null; } return getStateCache(facesContext).restoreSerializedView(facesContext, viewId, savedState); }
@Override public void saveState(FacesContext facesContext, Object state) { if (isHandlingStateCachingMechanics(facesContext)) { getStateCache(facesContext).saveSerializedView(facesContext, state); } else { //This is done outside } }
@Override public void writeState(FacesContext facesContext, Object state) throws IOException { ResponseWriter responseWriter = facesContext.getResponseWriter(); Object savedStateObject = null; if (!facesContext.getViewRoot().isTransient()) { // Only if the view is not transient needs to be saved savedStateObject = getStateCache(facesContext).encodeSerializedState(facesContext, state); } // write the view state field writeViewStateField(facesContext, responseWriter, savedStateObject); // renderKitId field writeRenderKitIdField(facesContext, responseWriter); // windowId field writeWindowIdField(facesContext, responseWriter); }
Object[] savedState = new Object[2]; if (isHandlingStateCachingMechanics(facesContext)) token = getStateCache(facesContext).encodeSerializedState(facesContext, state); writeViewStateField(facesContext, responseWriter, savedState); writeRenderKitIdField(facesContext, responseWriter);
writeViewStateField(facescontext, responseWriter, savedState); writeRenderKitIdField(facescontext, responseWriter);
@Override public boolean isWriteStateAfterRenderViewRequired(FacesContext facesContext) { return getStateCache(facesContext).isWriteStateAfterRenderViewRequired(facesContext); }
private void writeViewStateField(FacesContext facesContext, ResponseWriter responseWriter, Object savedState) throws IOException { String serializedState = getStateCache(facesContext).getStateTokenProcessor(facesContext) .encode(facesContext, savedState); ExternalContext extContext = facesContext.getExternalContext(); MyfacesConfig myfacesConfig = MyfacesConfig.getCurrentInstance(extContext); responseWriter.startElement(HTML.INPUT_ELEM, null); responseWriter.writeAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_HIDDEN, null); responseWriter.writeAttribute(HTML.NAME_ATTR, STANDARD_STATE_SAVING_PARAM, null); if (myfacesConfig.isRenderViewStateId()) { // responseWriter.writeAttribute(HTML.ID_ATTR, STANDARD_STATE_SAVING_PARAM, null); // JSF 2.2 if javax.faces.ViewState is used as the id, in portlet // case it will be duplicate ids and that not xml friendly. responseWriter.writeAttribute(HTML.ID_ATTR, HtmlResponseStateManager.generateUpdateViewStateId( 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); }
if (viewState != null) writer.startUpdate(HtmlResponseStateManager.generateUpdateViewStateId( _facesContext)); writer.write(viewState); writer.startUpdate(HtmlResponseStateManager.generateUpdateViewStateId( _facesContext)); writer.write("stateless"); if (cw != null) writer.startUpdate(HtmlResponseStateManager.generateUpdateClientWindowId( _facesContext)); writer.write(cw.getId());
private void writeWindowIdField(FacesContext facesContext, ResponseWriter responseWriter) throws IOException { ClientWindow clientWindow = facesContext.getExternalContext().getClientWindow(); if (clientWindow != null) { responseWriter.startElement(HTML.INPUT_ELEM, null); responseWriter.writeAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_HIDDEN, null); responseWriter.writeAttribute(HTML.ID_ATTR, generateUpdateClientWindowId(facesContext), null); responseWriter.writeAttribute(HTML.NAME_ATTR, ResponseStateManager.CLIENT_WINDOW_PARAM, null); responseWriter.writeAttribute(HTML.VALUE_ATTR, clientWindow.getId(), null); responseWriter.endElement(HTML.INPUT_ELEM); } }
writeViewStateField(facescontext, responseWriter, savedState); writeRenderKitIdField(facescontext, responseWriter);
@Override public boolean isWriteStateAfterRenderViewRequired(FacesContext facesContext) { return getStateCache(facesContext).isWriteStateAfterRenderViewRequired(facesContext); }
@Override public String getViewState(FacesContext facesContext, Object baseState) { if (baseState == null) { return null; } Object state = null; if (isHandlingStateCachingMechanics(facesContext)) { state = getStateCache(facesContext).saveSerializedView(facesContext, baseState); } else { state = baseState; } Object[] savedState = new Object[2]; if (state != null) { savedState[STATE_PARAM] = state; } savedState[VIEWID_PARAM] = facesContext.getViewRoot().getViewId(); return StateUtils.construct(savedState, facesContext.getExternalContext()); }
@Override public Object getComponentStateToRestore(FacesContext facesContext) { // Although this method won't be called anymore, // it has been kept for backward compatibility. Object[] savedState = getSavedState(facesContext); if (savedState == null) { return null; } return savedState[STATE_PARAM]; }
public HtmlRenderKitImpl() { _renderers = new ConcurrentHashMap<String, Map<String, Renderer>>(64, 0.75f, 1); _responseStateManager = new HtmlResponseStateManager(); //_families = new HashMap<String, Set<String> >(); _clientBehaviorRenderers = new HashMap<String, ClientBehaviorRenderer>(); }
@Override public String getCryptographicallyStrongTokenFromSession(FacesContext context) { Map<String, Object> sessionMap = context.getExternalContext().getSessionMap(); String savedToken = (String) sessionMap.get(SESSION_TOKEN); if (savedToken == null) { savedToken = getStateCache(context).createCryptographicallyStrongTokenFromSession(context); sessionMap.put(SESSION_TOKEN, savedToken); } return savedToken; }
@Override public Object getTreeStructureToRestore(FacesContext facesContext, String viewId) { // Although this method won't be called anymore, // it has been kept for backward compatibility. Object[] savedState = getSavedState(facesContext); if (savedState == null) { return null; } return savedState[TREE_PARAM]; }
public HtmlRenderKitImpl() { _renderers = new ConcurrentHashMap<String, Map<String, Renderer>>(64, 0.75f, 1); _responseStateManager = new HtmlResponseStateManager(); _families = new HashMap<String, Set<String> >(); _clientBehaviorRenderers = new HashMap<String, ClientBehaviorRenderer>(); }