Hi Martin,
I have a few questions. Apache JIRA is not working properly (I am
unable log in), so I will ask them here:
- Can we handle the dialog case better for cases when the delegate
NavigationHandler is unable to provide the navigation case
(navigationCase is null)? I think we could essentially execute the old
code (call handleNavigation(), but save the viewMap before the call
and then restore it after).
- Given that we need to handle the scenario without a
navigationCase (see above), wouldn't it be simpler to just keep the old
code and
save/restore the viewMap?
Thanks,
Max
Martin Koci (JIRA) wrote:
[ https://issues.apache.org/jira/browse/TRINIDAD-1600?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Koci updated TRINIDAD-1600:
----------------------------------
Status: Patch Available (was: Open)
Trinidad2 - Dialog navigation clears View Scope
-----------------------------------------------
Key: TRINIDAD-1600
URL: https://issues.apache.org/jira/browse/TRINIDAD-1600
Project: MyFaces Trinidad
Issue Type: Bug
Affects Versions: 2.0.0-core
Environment: Trinidad 2.0 branch, JSF RI 2.0.0RC2
Reporter: Martin Koci
Attachments: patch.txt
JSF 2.0 introduces new scope "View Scope" implemented with a Map UIViewRoot.viewMap. Spec also says that call FacesConfig.setViewRoot() clears that Map.
Problem: Trinidad NavigationHandler uses method handleNavigation for detection if a dialog navigation will be performed - however that method creates new UIViewRoot and sets it to FacesContext -> clears view scope. If user places managed bean into view scope and starts a dialog: navigation on that view, bean is removed and new instance of the bean is created after dialog return.
Solution: use new JSF 2.0 ConfigurableNavigationHandler API
|