为什么要在ajax请求中重新加载每个列表?

时间:2014-10-10 10:49:47

标签: ajax jsf-2 richfaces

我在表单中有一些代码块,如下一个代码。

<a4j:outputPanel id="listValues">
    <a4j:repeat value="#{listBean.values}" var="aValue">
        <a4j:outputPanel rendered="#{not empty aValue.value}">
            <h:selectBooleanCheckbox id="selectRecordCheck"
                value="#{listBean.aValueSelectedMap[aValue.value]}">
                <a4j:ajax event="valueChange" execute="@this"
                    render="tagsValues, listValues"
                    listener="#{listBean.listenerValueChange}" />
                <a4j:param name="id" value="#{aValue.value}" />
                <a4j:param name="value"
                    value="#{listBean.aValueSelectedMap[aValue.value]}" />
            </h:selectBooleanCheckbox>
            <h:outputLabel value="#{aValue.label}" />
            <br />
        </a4j:outputPanel>
    </a4j:repeat>
</a4j:outputPanel>
<a4j:outputPanel id="tagsValues">
    <table>
        <a4j:repeat value="#{listBean.listaVirtualEstadoSeleccionados}"
            var="tag">
            <tr>
                <td><h:outputText styleClass="tags" value="#{tag}" /></td>
            </tr>
        </a4j:repeat>
    </table>
</a4j:outputPanel>

问题是单击checkBox会重新加载其他checkBox组的列表(调用其他managedBean属性)。

如何避免这种行为?

在JBoss AS6.1.0上运行,Mojarra 2.0.3,RichFaces 4.3.7 THX

1 个答案:

答案 0 :(得分:0)

确定,

我们有Mojarra 2.0.3-b05版本。我已经升级到2.0.11(我发现了一些关于2011年可能存在关联的2.1的错误)并添加到a4j:ajax元素以下代码

immediate="true" limitRender="true" bypassUpdates="true"

也许添加属性就足够了,但我认为升级jsf版本无论如何都是个好主意。

PD:我认为存在一个错误,因为我认为它没有感觉到这种行为。