Ok, I think I found the problem.
I created an Issue and attached a patch.
https://issues.apache.org/jira/browse/MYFACES-2788
Marcus
Marcus Büttner schrieb:
Hi,
I have a problem with input elements in an UIData (e.g. datatable).
Example code:
<h:dataTable value="#{myBean.valueList}" var="val">
<h:column>
<h:outputText value="#{val.description}"/>
</h:column>
<h:column>
<h:selectBooleanCheckbox id="flag" value="#{val.flag}"/>
</h:column>
</h:dataTable>
<h:commandButton/>
I want to fetch the values of the selectBooleanCheckbox in the second
column. I've set a breakpoint to setSubmittedValue in UIInput and what
happens:
1.) The components are restored in restore view phase
2.) The DebugPhaseListner does a visitTree wich calls the
setSubmittedValue for my three checkboxes (3 lines in table) about 17
times. The visitTree of UIData does a setRowIndex an there the
restoreDescendantComponentState is called, which restores the State of
my UIInput (checkbox) again.
3.) Then decode is proccessed. Here the setRowIndex is called again
and also the restoreState of my checkbox is done. Now the Checkbox is
decoded and the submittedValue is set correctly.
4.) The DebugPhaseListner does a visitTree in the same way like point
2. The problem is it does also the restoreState of my Checkboxes
(because of setRowIndex and so on) and the submittedValues are lost.
Is there anything I did wrong?
I hope, someone can help.
Regards Marcus