我想从dataTable中获取选择值以在我的Managed Bean中设置,但是在托管bean中只需设置null。如何设置选择值?
<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>
这是我的Managed Bean私有CancelacionMB客户;
public CancelacionMB getCliente() {
return cliente;
}
public void setCliente(CancelacionMB cliente) {
this.cliente = cliente;
}
答案 0 :(得分:1)
如果bean是请求作用域且在(post)构造期间未保留数据,则此构造将失败,但仅在某些操作方法期间。请求作用域的bean在响应结束时被吞噬。当您选择一行并提交表单时,将创建一个全新的表单,并将所有属性设置为默认值(或者由其构成的任何(post)构造函数)。
如果您正在使用某种操作方法准备数据,例如在提交搜索表单之后,您应该将bean放在视图范围内,以便在后续回发请求中保持数据的活动。
@ManagedBean
@ViewScoped
public class CancelacionMB {
// ...
}