Paginierung auf Primefaces datatable funktioniert nicht

Ich bin derzeit am entwickeln einer Anwendung mit JPA2, Spring 3, MyFaces 2.1 und Primefaces 4.0 RC1.

Entwickelte ich eine einfache Seite mit einer datatable mit pagination-Funktion von primefaces, aber wenn ich auf Seitenzahl (unten oder header), es funktioniert einfach nicht. Keine Ausnahme-oder javascript-Fehler angezeigt.

Ich habe beide getestet in Chrome und Firefox. Gleiche problem.

Hier mein code:

@ManagedBean
@ViewScoped
public class MeusCelularesTitularMB extends AbstractMB implements Serializable {

    private static final long serialVersionUID = 5446365969371398743L;
    private static final Logger logger = LogManager.getLogger(MeusCelularesTitularMB.class);

    private CadastroGeral loggedUser;
    private List<LinhaCelularTitular> listaCelularesTitular;

    @PostConstruct
    public void init() {
    try {
        this.loggedUser = getCadastroGeralService().loadUser(getAuthenticatedUser());
        this.listarMeusCelularesTitular();
    } catch (ServiceException e) {
        logger.error("Erro ao consultar banco de dados", e);
        throw new RuntimeException(e);
    }
    }

    private void listarMeusCelularesTitular() {
    try {
        this.listaCelularesTitular = getLinhaCelularTitularSevice().getLinhasCelularesPorReponsavel(this.loggedUser.getMatricula());
    } catch (ServiceException e) {
        logger.error("Erro ao consultar banco de dados", e);
        throw new RuntimeException(e);
    }
    }

    private static CadastroGeralService getCadastroGeralService() {
    return Faces.evaluateExpressionGet("#{cadastroGeralService}");
    }

    private static LinhaCelularTitularService getLinhaCelularTitularSevice() {
    return Faces.evaluateExpressionGet("#{linhaCelularTitularService}");
    }

    public List<LinhaCelularTitular> getListaCelularesTitular() {
    return listaCelularesTitular;
    }

    public void setListaCelularesTitular(List<LinhaCelularTitular> listaCelularesTitular) {
    this.listaCelularesTitular = listaCelularesTitular;
    }
}

Und XHTML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">

    <ui:composition template="../../templates/template.xhtml">
        <ui:define name="content">
            <h:outputStylesheet library="css"  name="meusCelulares.css" />

            <h:form id="meusCelularesTitulares">
                <p:ajaxStatus onstart="statusDialog.show();" onsuccess="statusDialog.hide();"/>

                <h2>Celulares - Titular</h2>
                <p:dataTable id="tblLinhaCelularesTitulares"
                             var="celTitular"
                             widgetVar="wdgLinhaCelularesTitulares"
                             value="#{meusCelularesTitularMB.listaCelularesTitular}"
                             rowKey="#{celTitular.id}"
                             paginator="true"
                             rows="10"
                             rowsPerPageTemplate="5,10,15"
                             emptyMessage="Nenhum celular encontrado na Base de Dados">

                    <p:column>
                        <f:facet name="header">  
                            <h:outputText value="Ações" />  
                        </f:facet>

                        <h:outputText value="A B C" />
                    </p:column>

                    <p:column styleClass="colunaCentralizada">
                        <f:facet name="header">  
                            <h:outputText value="Código DDD" />  
                        </f:facet>

                        <h:outputText value="#{celTitular.codigoDDD}" />
                    </p:column>

                    <p:column styleClass="colunaCentralizada">
                        <f:facet name="header">  
                            <h:outputText value="Número" />
                        </f:facet>

                        <h:outputText value="#{celTitular.numeroLinha}" />
                    </p:column>

                    <p:column>
                        <f:facet name="header">  
                            <h:outputText value="Nome" />  
                        </f:facet>

                        <h:outputText value="#{celTitular.responsavel.nome}" />
                    </p:column>
                </p:dataTable>
            </h:form>
        </ui:define>
    </ui:composition>
</html>

Wenn Sie benötigen weitere Informationen, bitte lassen Sie mich wissen.

Haben Sie versucht, die gleiche Sache in PF 3.5? Sie sind mit einer RC-version, nachdem alle...
Ja. Funktioniert nicht zu. Es ist neugierig, weil ich die andere Seite mit einem anderen MB und funktioniert einwandfrei. Egal, welche version, 3.5 oder 4.0 RC.
Bitte minimieren Sie Ihre code-Inhalt, bis Sie immer noch den Fehler. Was sind das private static Methoden innerhalb Ihrer Bohnen tun soll? Für die Tabelle, ich glaube nicht, dass rowsPerPageTemplate und emptyMessage Attribute sind relevant.
dein Tipp war sehr, sehr wichtig! Gefunden mein Fehler. Ich habe angefangen zu entfernen rowsPerPageTemplate und emptyMessage. Kein Erfolg. Dann entfernte ich <p:ajaxStatus onstart="statusDialog.show();" onsuccess="statusDialog.hide();"/> - und es funktionierte. So erkannte ich meinen Fehler. Der dialog statusDialog fehlte! Ich habe den dialog und gearbeitet! Sorry für diese dumme Frage!
OK, Mach dir keine sorgen. Nur, wenn etwas nicht so funktioniert, versuchen Sie zuerst, das problem zu isolieren, wenn nicht erfolgreich, Fragen Sie 😉

InformationsquelleAutor Ricardo Giaviti | 2013-09-26

Schreibe einen Kommentar