Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.5
-
None
Description
the implementation of the SecurityAwareViewHandler use something like this:
public UIViewRoot createView(FacesContext context, String viewId)
{
..
context.setViewRoot(result);
...
if (originalViewRoot != null)Unknown macro: { context.setViewRoot(originalViewRoot); }..
}
But the call to context.setViewRoot(..) will clear the viewMap of the current active ViewRoot and therefore it destroys the state of current view.
Sample:
ViewDeclarationLanguage vdl = context.getApplication().getViewHandler().getViewDeclarationLanguage(context, cleanTargetViewName);
ViewMetadata viewMetadata = vdl.getViewMetadata(context, cleanTargetViewName);
UIViewRoot viewRoot = viewMetadata.createMetadataView(context);
targetViewParams = ViewMetadata.getViewParameters(viewRoot);
the call to viewMetadata.createMetadataView(context) will destroy my current viewMap.
That should not be happen.
Attachments
Attachments
Issue Links
- is related to
-
EXTCDI-167 ViewParameter got lost with redirect after post
- Closed