Details
Description
There is code that inserts an object into the request parameter map in the update method, in the PortletExternalContext, and the ServletExternalContext. This correctly triggers the logic in the JSF restoreView implementation class to treat the request as a postback. The problem is, update is being called on both partial and fresh non-jsf GET requests, essentially making everything a postback.
One of the symptoms of this problem are Seam DataModel objects no longer working. In some rare instances, Seam example code has the following type of behaviour:
User clicks on an item from a data table,
seam link tag causes a redirect from the table item to the same page
the UI now displays the contents of the chosen record on the same page
This type of interaction would be broken because after the redirect, the phases that are supposed to be executed are restoreView, which will cause a new viewRoot to be created, and renderResponse, since we have a brand new View.
In our case, the postback token causes the view to be restored, and the full JSF lifecycle is executed. As part of the full lifecycle, the DataModel data holding objects get cleared, and the visible result is that no matter what record the user clicks in the dataTable, only the first record is ever displayed, edited, deleted, etc.
One of the symptoms of this problem are Seam DataModel objects no longer working. In some rare instances, Seam example code has the following type of behaviour:
User clicks on an item from a data table,
seam link tag causes a redirect from the table item to the same page
the UI now displays the contents of the chosen record on the same page
This type of interaction would be broken because after the redirect, the phases that are supposed to be executed are restoreView, which will cause a new viewRoot to be created, and renderResponse, since we have a brand new View.
In our case, the postback token causes the view to be restored, and the full JSF lifecycle is executed. As part of the full lifecycle, the DataModel data holding objects get cleared, and the visible result is that no matter what record the user clicks in the dataTable, only the first record is ever displayed, edited, deleted, etc.
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #15202 | Thu Nov 15 14:30:44 MST 2007 | greg.dick | |
Files Changed | ||||
![]() |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #15059 | Wed Oct 31 12:31:47 MDT 2007 | greg.dick | |
Files Changed | ||||
![]() |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #15057 | Wed Oct 31 12:30:21 MDT 2007 | greg.dick | |
Files Changed | ||||
![]() |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #15056 | Wed Oct 31 12:29:06 MDT 2007 | greg.dick | |
Files Changed | ||||
![]() |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #15055 | Wed Oct 31 12:28:39 MDT 2007 | greg.dick | |
Files Changed | ||||
![]() |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #14857 | Mon Sep 24 11:08:57 MDT 2007 | greg.dick | |
Files Changed | ||||
![]() |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #14856 | Mon Sep 24 11:08:10 MDT 2007 | greg.dick | |
Files Changed | ||||
![]() |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #14855 | Mon Sep 24 11:07:38 MDT 2007 | greg.dick | |
Files Changed | ||||
![]() |