Olá, pessoal tenho o seguinte código:
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:rich="http://richfaces.org/rich" xmlns:a4j="http://richfaces.org/a4j"
template="../../template.xhtml">
<ui:define name="content">
<h:form>
<h:column>
<h:outputText styleClass="TextoTipoP1" value="Pesquisa: " />
<h:inputText valueChangeListener="#{funcionarioBean.mudarValorListener}"
id="nomePesquisa" value="#{funcionarioBean.nomePesquisa}" required="true"
requiredMessage="*Campo obrigatorio" size="30">
</h:inputText>
</h:column>
<h:column>
<h:commandButton image="../../img/find.png" style="width: 20"
action="#{funcionarioBean.pesquisar}"/>
</h:column>
<rich:dataTable id="funcionariosList" value="#{funcionarioBean.funcionarios}" var="f"
onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
rows="10" rendered="#{not empty funcionarioBean.funcionarios}">
<rich:column>
<f:facet name="header">
<h:outputText value="Nome"></h:outputText>
</f:facet>
<h:outputText value="#{f.nome}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Login"></h:outputText>
</f:facet>
<h:outputText value="#{f.login}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Editar"></h:outputText>
</f:facet>
<a4j:commandLink value="(editar)" action="#{funcionarioBean.prepareEditar}"
immediate="true">
<f:setPropertyActionListener value="#{f}"
target="#{funcionarioBean.funcionario}" />
</a4j:commandLink>
</rich:column>
<f:facet name="footer">
<rich:datascroller maxPages="10" binding="#{funcionarioBean.scroller}"
actionListener="#{funcionarioBean.pesquisarActionListener}" />
</f:facet>
</rich:dataTable>
</h:form>
</ui:define>
</ui:composition>
E no meu ManagedBean esta assim
public class FuncionarioBean {
private Funcionario funcionario;
private List<Funcionario> funcionarios=new ArrayList<Funcionario>();
private String nomePesquisa;
private int page;
private HtmlDatascroller scroller;
public FuncionarioBean() {
funcionario=new Funcionario();
}
public int getPage() {
return page;
}
public HtmlDatascroller getScroller() {
return scroller;
}
public void setScroller(HtmlDatascroller scroller) {
this.scroller = scroller;
}
public void setPage(int page) {
this.page = page;
}
public List<Funcionario> getFuncionarios() {
return funcionarios;
}
public void setFuncionarios(List<Funcionario> funcionarios) {
this.funcionarios = funcionarios;
}
public Funcionario getFuncionario() {
return funcionario;
}
public void setFuncionario(Funcionario funcionario) {
this.funcionario = funcionario;
}
public String getNomePesquisa() {
return nomePesquisa;
}
public void setNomePesquisa(String nomePesquisa) {
this.nomePesquisa = nomePesquisa;
}
/**
* Pesquisa funcionario por nome
*/
public void pesquisar(){
int min=0;
int max=0;
if(page<=0){
max=10;
}else{
min=(page * 10) -10;
max=page * 10;
}
FuncionarioDao dao=new DaoFactory().getFuncionarioDao();
this.funcionarios=dao.findByName(nomePesquisa,min,max);
}
public void mudarValorListener(ValueChangeEvent event){
if(event.getOldValue()!=null &&
(!event.getOldValue().equals(event.getNewValue())) ){
page=1;
limparPesquisa();
}
}
private void limparPesquisa() {
scroller.setPage(1); //Essa parte do código não funciona
}
public void pesquisarActionListener(ActionEvent event){
DataScrollerEvent dEvent=(DataScrollerEvent) event;
page=dEvent.getPage();
pesquisar();
}
O que acontece e o seguinte, quando pesquiso um nome qualquer, ele faz a pesquisa corretamente, ai clico por exemplo na pagina 5, mas quando refaço a pesquisa ele volta para a pagina 5 ,e as vezes a segunda pesquisa não tem 5 páginas ficando vazia, gostaria de resetar a pagina para 1 a cada nova pesquisa.
Para isso criei um component-binding e no momento correto seto a page para 1, o problema é que a page sempre vem null, e quando seto para 1 não funciona.
Existe outra forma de fazer isso, como vcs fazem atulamente.
Obs;Lembrando que a paginação é sob demanda!
