Fala Marcelo,
coloquei o escopo do bean como ViewScoped e ele deu o mesmo erro quando eu coloquei
como SessionScoped e ApplicationScoped.
javax.faces.FacesException: #{buscaBean.buscarClientePorNome}: org.hibernate.SessionException: Session is closed!
Esse erro acontece quando eu clico no botão, ele nem popula a tabela.
O size da lista é 200 mesmo, e ele mostra certinho, mas quando a lista é populada pelo método de busca, a paginação não funciona, só
a primeira página.
segue o fonte da página de busca. Troquei de server, estou usando o glassfish que tem a lib da EL mais atual.
<h:body>
<div id="container" class="ui-widget">
<div id="header" class="ui-widget-header">
<div>
</div>
</div>
<div id="content">
<h:form>
<div id="divCentralBusca">
<p:ajaxStatus style="width:16px;height:16px;">
<f:facet name="start">
<h:graphicImage library="images" name="ajaxloading.gif" />
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
<p:panel id="pnlBuscaCliente" header="Busca de cliente">
<h:panelGrid columns="3">
<h:outputText value="Digite um nome:" />
<p:inputText size="115" value="#{buscaBean.conteudoBusca}" />
<p:commandButton value="Buscar"
image="ui-icon ui-icon-search"
action="#{buscaBean.buscarClientePorNome}"
update="tableBusca"/>
</h:panelGrid>
</p:panel>
</div>
<div id="divCentralTabela">
<p:dataTable id="tableBusca" var="cliente"
value="#{buscaBean.clientesEncontrados}"
emptyMessage="Nenhum cliente encontrado." rows="15"
paginator="true">
<p:column>
<f:facet name="header">
<h:outputText value="Código" />
</f:facet>
<h:outputText value="#{cliente.codigo}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Nome fantasia" />
</f:facet>
<h:outputText value="#{cliente.nomeFantasia}" />
</p:column>
<p:column style="width: 10px">
<p:commandButton image="ui-icon ui-icon-search"
title="Selecionar cliente"
action="#{buscaBean.selecionarCliente(cliente)}" ajax="false"/>
</p:column>
</p:dataTable>
</div>
</h:form>
</div>
</div>
</h:body>
Estou usando somente um form, como o
Matruskan falou, mas mesmo assim não funciona.
Na verdade eu coloquei a página .xhtml na action para testar, mas não funcionou. Ele volta para a mesma página.
A idéia do sistema é listar o resultado da busca em uma tabela e o usuário selecionar o registro desejado clicando no botão
que eu coloquei em uma coluna no datatable. Com isso, o sistema irá para outra página onde irá ser mostrado as informações
desse cliente selecionado.
Quem tiver uma idéia melhor de como fazer isso, eu agradeço.
Abraço,
Diogo Dias