3

我想从 dataTable 中获取选择值以在我的托管 Bean 中设置,但在托管 bean 中只需设置为空。如何设置选择值?

 <h:form id="formcancel">
    <p:dataTable id="tablaprecan" var="xd" value="#{cancelacionMB.resultados}" rowKey="#{xd.folio}"
                 selection="#{cancelacionMB.cliente}" selectionMode="single" >
        <f:facet name="header">
            Solicitudes de Precancelacion
        </f:facet>

        <p:column headerText="Folio">
            <h:outputText value="#{xd.folio}" />
        </p:column>

        <p:column headerText="Cliente">
            <h:outputText value="#{xd.id_cliente}" />
        </p:column>

        <p:column headerText="Nombre del Cliente">
            <h:outputText value="#{xd.nombre_cliente}" />
        </p:column>

        <p:column headerText="Fecha Precancelacion">
            <h:outputText value="#{xd.timestamp_precancelacion}" />
        </p:column>
        <f:facet name="footer">
            <p:commandButton id="viewButton" value="Cancelar Banca" icon="ui-icon-gear"
                             update="tablaprecan" actionListener="#{cancelacionMB.cancelarBE}" rendered="true" />
        </f:facet>
    </p:dataTable>
</h:form>

这是我的托管 Bean 私人 CancelacionMB 客户;

public CancelacionMB getCliente() {
    return cliente;
}

public void setCliente(CancelacionMB cliente) {
    this.cliente = cliente;
}
4

1 回答 1

1

如果 bean 是请求范围的,并且在(后)构造期间不保留数据,但仅在某些操作方法期间,则此构造将失败。请求范围的 bean 在响应结束时被丢弃。当您选择一行并提交表单时,将创建一个全新的表单,其中所有属性都设置为默认值(或由它构成的(后)构造函数)。

如果您正在以某种操作方法准备数据,例如在提交搜索表单之后,那么您应该将 bean 放在视图范围内,以便在后续回发请求中保持数据活动。

@ManagedBean
@ViewScoped
public class CancelacionMB {
    // ...
}

也可以看看:

于 2012-12-20T10:57:58.527 回答