我在 JSF 1.2 上,想知道我看到的行为。我的 JSF 页面使用 a4j:jsFunction 启动进程,然后使用 a4j:poll 获取进度百分比。这个过程建立了一个对象列表,每个对象又包含一个列表。当 a4j:jsFunction 调用完成时,将重新呈现 a4j:outputPanel。此面板包含一个 selectBooleanCheckbox,它绑定到第二个列表中对象的布尔值:
<a4j:jsFunction name="validate" action="#{MigrationWizardValidateForm.validate}" reRender="validationResult, done"/>
...
<a4j:outputPanel id="validationResult">
<ui:repeat value="#{MigrationWizardValidateForm.validationErrors}" var="validationError">
<ui:repeat value="#{validationError.assignmentVisualisations}" var="assignmentVisualisation">
<h:selectBooleanCheckbox value="#{assignmentVisualisation.assignment.mainLocation}"
...
我看到的是当进程加载对象时 mainLocation 为真。当外部重复获得它的列表时,这是真的。但是当 selectBooleanCheckbox 呈现时,它会以 false 调用 setMainLocation。
为什么这样做?