Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Implemented
-
2.0.0
-
None
-
None
-
mac os x, tomcat.
Description
because 'javax.view.id' will not be find in request.getParametersMap, the restore phase executor will stop execute.
source code:
package org.apache.myfaces.lifecycle;
.........
class RestoreViewExecutor implements PhaseExecutor
..........
public boolean execute(FacesContext facesContext){
..................
if (!errorPageRequest && restoreViewSupport.isPostback(facesContext))
{ ................ }...............
}
restoreViewSupport.isPostback(facesContext) will call facesContext.getExternalContext().getRequestParameterMap().get(ResponseStateManager.VIEW_STATE_PARAM)
but request.parameterMap is empty because of using 'multipart/form-data'.
restoreViewSupport.isPostback(facesContext) will return false,
then FacesContext.renderResponse() is called. the whole phasing process is stopped.
suggestion:
should wrap request.parameterMap from the first place.