Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.5.3
-
Component/s: ICE-Components
-
Labels:None
-
Environment:Windows Vista, JDK 1.5.0_11, JBoss AS 4.0.5, Seam 1.2.1.GA, ICEfaces 1.5.3
-
ICEsoft Forum Reference:
Description
Also, changing back to non icefaces components using <h:inputHidden> works just fine.
I have not been able to figure out a work around.
Note: I'm using seam to back the form data. I'll send files if requested.
-
Hide
- cms.zip
- 11 kB
- eray
-
- customerData.xhtml 3 kB
- customerList.xhtml 3 kB
- CustomerListBean.java 2 kB
- customerManager.xhtml 0.8 kB
- ManageCustomerBean.java 3 kB
-
Hide
- CustomerManagementSystem.ear
- 3.09 MB
- eray
-
- META-INF/MANIFEST.MF 0.1 kB
- CustomerManagementSystem-ejb.jar 15 kB
- CustomerManagementSystem-war.war 1.25 MB
- META-INF/application.xml 0.8 kB
- META-INF/jboss-app.xml 0.1 kB
- backport-util-concurrent.jar 343 kB
- commons-fileupload.jar 22 kB
- el-api.jar 29 kB
- el-ri.jar 97 kB
- icefaces-facelets.jar 581 kB
- jboss-seam.jar 650 kB
- krysalis-jCharts-1.0.0-alpha-1.jar 151 kB
Issue Links
- blocks
-
ICE-1573 spring: conversation lock release exception
- Closed
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Further investigation reveals that this issue is somehow tied to the <ice:commandButton>. Leaving everything else the same and changing to <h:commandButton> works.
Sorry guys. Please disregard the last statement. My code was in a different state than I though it was. However, the original issue as reported is still valid.
resetHiddenFieldsFor() in submit.js is resetting the values for all hidden input components, which makes using inputHidden components impossible. We might want to use some prefix for all hidden inputs that need resetting and not blank out all of them indiscrimantly
As far as we know, resetHiddenFieldsFor() is no longer necessary. Since it interferes with third-party component compatibility and the current implementation of Spring integration (ICE-1573), we should disable it unless testing shows otherwise.
At the very least, for 1.6 we should determine whether this function is necessary.
Resetting hidden fields has been with us for a while ... no wonder nobody remembered what it was for (icefaces-d2d.js):
9 tedg // handle the hidden command links
9 tedg if (form_elm.type == "hidden") {
9 tedg var elm_name = form_elm.name;
9 tedg var len = elm_name.length;
9 tedg var test = elm_name.substring((len-5),len);
9 tedg if (test == "_idcl")
9 tedg }
The difficulty is that commandLink (and potentially other components) stores a value in a particular hidden field to indicate that the commandLink has been clicked. If the hidden field is not cleared, another click on the commandLink will be registered on the next user event. Clearing the hidden field in an update from the server is not practical as the server may not have the opportunity to reply in time (if the user events are rapid). By default, most components will assume that their hidden fields are cleared, because this would be the typical behavior on a full-page refresh.
Since many components are likely expecting this behaviour, we should likely keep it; however, it is also desirable to indicate that certain hidden fields not be reset.
If a naming scheme is used (such as name="retain:name") the prefix should be stripped off upon submission to allow parameters of a specified name to be used.
A reserved value of the alt tag could be used alt="retain".
A new attribute could be set: icefaces_hidden="retain".
<input type="hidden" name="n" value="v" icefaces-retain="true" />
After discussion with Mark, yet another option is (in the bridge) to not reset hidden fields with ids. This would fix ice:inputHidden. For other uses, it would simply be necessary to assign the component an id (typically derived from the form, to allow multiple forms on the same page).
Added code to only clear the hidden form fields that don't have ids. (Plus all the other criteria)
Subversion 14041
icefaces\bridge\src\submit.js
Attached are the web pages and seam components