JSF 2.2@ViewScope绑定错误?
我已经读过关于@ViewScoped()的绑定错误,并且它在最新版本的JSF中得到了修复,所以我用3个最新版本的JSF测试了这个问题,并尝试使用JSF 2.2@ViewScope绑定错误?,jsf,binding,view-scope,jsf-2.2,Jsf,Binding,View Scope,Jsf 2.2,我已经读过关于@ViewScoped()的绑定错误,并且它在最新版本的JSF中得到了修复,所以我用3个最新版本的JSF测试了这个问题,并尝试使用 <context-param> <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name> <param-value>false</param-value> 编辑:调试一段时间后,我发现过滤器的值被设置在变量上,紧接着调用setCl
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>false</param-value>
编辑:调试一段时间后,我发现过滤器的值被设置在变量上,紧接着调用setCliente()并将其设置为null,但我不知道为什么。了解了
选择=“#{cadastroClienteBean.cliente}”的过程数据表上的属性将客户端设置为null,因为没有选择任何行。了解了选择=“#{cadastroClienteBean.cliente}”由于未选择任何行,数据表上的属性将客户端设置为null。是否标记了客户端属性瞬态?不,我没有@ManagedBean@ViewScoped公共类CadastroClienteBean实现可序列化{/***/private static final long serialVersionUID=1L;private List clientes;private Cliente Cliente;private String valor;
您是否标记了客户端
属性transient
?您不应该这样做。不,我没有@ManagedBean@ViewScoped公共类CadastroClienteBean实现可序列化{/***/private static final long serialVersionUID=1L;private List clientes;private Cliente Cliente;private String valor;
好的,这只是您自己的代码/测试方法中的一个bug;)顺便说一句,在JSF 2.2中,您不需要禁用部分状态保存来修复正在更新的视图范围bean的bug每次都构造。此设置仅在您仍然使用JSF 2.0/2.1时用作“临时解决方案”。是的,我使用另一个客户端属性“selectedCliente”修复了它。并删除了部分状态保存修复。谢谢。好吧,这只是您自己的代码/测试方法中的一个错误;)顺便说一句,对于JSF 2.2,您不需要禁用部分状态保存来修复每次重构视图范围bean的错误。此设置仅用于“临时解决方法”当您仍然使用JSF 2.0/2.1时。是的,我使用另一个客户端属性“selectedCliente”修复了它。并删除了部分状态保存修复。谢谢。
<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>
public CadastroClienteBean(){
cliente = new Cliente();
init();
}