JSF 2.2 @ViewScoped绑定错误?

时间:2012-06-05 17:42:34

标签: jsf binding view-scope jsf-2.2

我已经阅读了@ViewScoped(BUG REPORT)的绑定错误,并且它已在最新版本的JSF中修复,因此我使用3个最新版本的JSF进行了测试并尝试了使用

  <context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>false</param-value>

修复解决问题,但没有运气。

我有一个primefaces数据表,我在每个列标题中都有过滤器。

        <p:column id="cpfHeader" sortBy="#{cliente.nrCpf}"
        filterMatchMode="contains">
        <f:facet name="header">
            <h:panelGrid columns="1">
                <h:outputText value="CPF" />
                <p:inputText value="#{cadastroClienteBean.cliente.nrCpf}">

                </p:inputText>
                <p:commandButton
                    actionListener="#{cadastroClienteBean.getClientesBusca}"
                    update="#{form}:tabelaCliente:tblCliente" value="Filtrar"></p:commandButton>
            </h:panelGrid>
        </f:facet>
                #{cliente.nrCpf}                
            </p:column>

在我更改JSF版本之前,每次我点击&#34; Filtrar&#34;按钮,将创建我的cadastroClienteBean的新实例。现在我已经改变了它,似乎每次都没有实例化ManagedBean,但是cliente变量变为null,尽管我在构造函数上实例化它。

    public CadastroClienteBean(){
    cliente = new Cliente();
    init();
}
编辑:调试了一下后我发现过滤器的值是在变量上设置的,然后调用setCliente()并将其设置为null,但我不知道为什么

1 个答案:

答案 0 :(得分:1)

计算出dataTable上的selection="#{cadastroClienteBean.cliente}"属性发生了什么,因为没有选择行,因此将客户端设置为null。

相关问题