Details
Description
However, this leads to a problem in a complex situation including composite components, ice:dataTable, h:selectBooleanCheckbox and f:ajax
-
Hide
- checkboxintable.war
- 6.13 MB
- Adrian Gygax
-
- META-INF/MANIFEST.MF 0.0 kB
- WEB-INF/classes/.../MyBean.java 1 kB
- WEB-INF/classes/.../MyBean$Item.class 1 kB
- WEB-INF/classes/.../MyBean.class 0.9 kB
- WEB-INF/faces-config.xml 0.3 kB
- WEB-INF/insieme-ri.taglib.xml 0.4 kB
- WEB-INF/lib/commons-beanutils.jar 226 kB
- WEB-INF/lib/commons-digester.jar 140 kB
- WEB-INF/lib/commons-logging.jar 52 kB
- WEB-INF/.../icefaces-ee-2.0.0-INSIEME1.jar 206 kB
- WEB-INF/.../icefaces-ee-compat-2.0.0-INSIEME1.jar 2.67 MB
- WEB-INF/lib/jsf-api-2.1.2.jar 611 kB
- WEB-INF/lib/jsf-impl-2.1.2.jar 1.85 MB
- WEB-INF/lib/jstl.jar 20 kB
- WEB-INF/lib/jxl.jar 708 kB
- WEB-INF/.../krysalis-jCharts-1.0.0-alpha-1.jar 151 kB
- WEB-INF/web.xml 2 kB
- index.xhtml 0.6 kB
- resources/table/my.xhtml 1 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
We may be able to provide f:ajax functionality but without the state-saving problems. Does the test case include pages that illustrate the desired f:ajax use?
Yes, the test case illustrates the desired f:ajax use. It's in resources\table\my.xhtml.
In the example, if a checkbox is clicked it's immediately deselected if using ice:dataTable.
This should be tested with ace:ajax (Mark suggested this, so he may be a good candidate). If that fails similarly, we will want to provide a replacement for:
<h:selectBooleanCheckbox value="#
{item.isSelected}"><f:ajax execute="@this" render="@all"/>
</h:selectBooleanCheckbox>
This mimics singleSubmit, so it may be sufficient to replace h:selectBooleanCheckbox with an ice: or ace: component.
The following approach could be investigated:
A new component <ice:ajax> acting as a wrapper:
<ice:ajax execute="@this" render="@all">
<h:selectBooleanCheckbox value="#{item.isSelected}
">
</ice:ajax>
prior to rendering children would set onclick and onchange values explicitly given knowledge of what is appropriate for each component. This would result in very similar markup to f:ajax. The drawback is that knowledge of "ajax" for each component would be contained in ice:ajax. This lacks object orientation, but would be functional and maintainable given that the current JSF components are standardized.
Have you found the cause why this works with <h:dataTable> but not with <ice:dataTable>?
As there seems to be no progress on this issue we created a patched Mojarra 2 version with the patch from http://java.net/jira/browse/JAVASERVERFACES-1845. This allows us to use Partial State Saving again and we don't stumble on this bug anymore
Fixed by ICE-7142.
Attached example application demonstrating the bug.
A composite component containing an ice.dataTable with a selectBooleanCheckbox (see my.xhtml)
By clicking the check box, the model (MyBean) is not updated.
The inputText does work as expected.
We actually don't want to disable partial state saving but we are forced to do so by http://java.net/jira/browse/JAVASERVERFACES-2041. If that bug was fixed in Mojarra this bug here would actually not be an issue for us.