Я прочитал о вязании ошибки с @ViewScoped (BUG REPORT), и что он был зафиксирован в одной из последних версий JSF, так что я испытал это с 3 последними версиями JSF и попытался с помощьюJSF 2.2 @ViewScoped ошибка привязки?
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>false</param-value>
исправить это, но не повезло.
У меня есть шрифт, связанный с границами, где у меня есть фильтры в каждом заголовке столбца.
<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, каждый раз, когда я нажмите на кнопку «Filtrar», новый экземпляр моего cadastroClienteBean будет создана. Теперь, когда я изменил его, кажется, что ManagedBean не создается каждый раз, но переменная cliente становится пустой, но я создаю экземпляр на конструкторе.
public CadastroClienteBean(){
cliente = new Cliente();
init();
}
EDIT: После отладки немного, я узнал, что значение фильтра создается на переменную и сразу после того, что setCliente() вызывается и его установка на нуль, но я не знаю, почему.
Вы отметили свойство 'client'' transient'? Вы не должны. – BalusC
Нет, я не '@ManagedBean @ViewScoped класс CadastroClienteBean общественность реализует Serializable { \t \t /** \t * \t */ \t частный статический окончательный длинный serialVersionUID = 1L; \t частный Список клиентов; \t частный клиент клиент; \t \t private String valor; ' –