Datumsprobleme in Primefaces

DaBe1812

Bekanntes Mitglied
Ich habe in Primefaces zwei Probleme mit Daten.

Zum einen verwende ich einen Datepicker in der Inline-Ansicht mit fünf Monaten. Gültig sind nur Daten vor heute.
Leider wird aber der aktuelle Monat ganz links angezeigt und somit werden 4 unwählbare Monate angezeigt.
HTML:
<div class="card">
    <p:panel header="Zeitraum">
        <p:datePicker id="range" value="#{responsetime.range}" showIcon="true" selectionMode="range" inline="true"
                      maxdate="#{responsetime.maxDate}" locale="de" pattern="dd.MM.yyyy" showButtonBar="true" numberOfMonths="5" />
        <p:commandButton update=":queryTimes:dtTimes" actionListener="#{responsetime.reload}" value="Neu laden" />
    </p:panel>
</div>
Maxdate ist in der Bean LocalDate.now().
Ich habe in der Doku keine Einstellungen für die an zu zeigenden Monate gefunden. MinDate macht keinen Sinn, da theoretisch auch Daten, älter als 5 Monate möglich sein sollen.

Das zweite Problem, dass ich habe ist eine Tabelle mit Datum filtern.
Die Tabelle:
HTML:
<p:dataTable id="dtTimes" var="queryTabelle" value="#{responsetime.responseTimes}" expandableRowGroups="true"
             allowUnsorting="true" sortMode="single" widgetVar="performanceTable" paginator="true" rows="50"
             paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
             rowsPerPageTemplate="25,50,75">

    <f:facet name="header">
        Antwortzeiten
    </f:facet>

    <p:column headerText="Abgefragtes System" field="refSystem" filterable="true" filterMatchMode="exact">
        <f:facet name="filter">
            <p:selectOneMenu onchange="PF('performanceTable').filter()" styleClass="ui-custom-filter">
                <f:selectItem itemLabel="Alle" itemValue="#{null}" noSelectionOption="true" />
                <f:selectItems value="#{responsetime.refSystemList}" />
            </p:selectOneMenu>
        </f:facet>

        <h:outputText value="#{queryTabelle.refSystem}" />
    </p:column>

    <p:column headerText="Server" field="system" filterable="true" filterMatchMode="exact">
        <f:facet name="filter">
            <p:selectOneMenu onchange="PF('performanceTable').filter()" styleClass="ui-custom-filter">
                <f:selectItem itemLabel="Alle" itemValue="#{null}" noSelectionOption="true" />
                <f:selectItems value="#{responsetime.serverList}" />
            </p:selectOneMenu>
        </f:facet>

        <h:outputText value="#{queryTabelle.system}" />
    </p:column>

    <p:column headerText="Abfrage" filterable="true">
        <h:outputText value="#{queryTabelle.query.name}" />
    </p:column>

    <p:column headerText="Region" filterable="true" filterBy="#{queryTabelle.region}">
        <h:outputText value="#{queryTabelle.region}" />
    </p:column>

    <p:column headerText="Institut" filterable="true" filterBy="#{queryTabelle.instNr}">
        <h:outputText value="#{queryTabelle.instNr}" />
    </p:column>

    <p:column headerText="EID" filterable="true" filterBy="#{queryTabelle.eidVerweis}">
        <h:outputText value="#{queryTabelle.eidVerweis}" />
    </p:column>

    <p:column headerText="Abfragezeit" field="queryTime" sortBy="#{queryTabelle.queryTime}" filterMatchMode="contains">

        <h:outputText value="#{queryTabelle.queryTime}">
            <f:convertDateTime type="localDate" pattern="dd.MM.yyyy HH:mm" />
        </h:outputText>
    </p:column>

    <p:column headerText="Ergebnis" field="respState" filterable="true" filterMatchMode="exact">
        <f:facet name="filter">
            <p:selectOneMenu onchange="PF('performanceTable').filter()" styleClass="ui-custom-filter">
                <f:selectItem itemLabel="Alle" itemValue="#{null}" noSelectionOption="true" />
                <f:selectItems value="#{responsetime.respStateList}" />
            </p:selectOneMenu>
        </f:facet>

        <h:outputText value="#{queryTabelle.respState}" />
    </p:column>

    <p:column headerText="Antwortzeit in ms">
        <h:outputText value="#{queryTabelle.durationMs}">
            <f:convertNumber groupingUsed="true" minFractionDigits="0" />
        </h:outputText>
    </p:column>


</p:dataTable>
Die aktuellen Filter funktionieren alle.
Wenn ich für das Feld queryTime einen Filter einbaue, nach der Vorlage auf der Primefaces Seite:
HTML:
 <f:facet name="filter">
     <p:datePicker selectionMode="range" onchange="PF('customersTable').filter()" />
</f:facet>
Dann funktionieren alle anderen Filter nicht mehr und die Tabelle wird auch nicht nach Datum gefiltert.
Einziger Unterschied, denn ich bisher gefunden habe ist, dass in den Beispielen java.util.Date verwendet wird und ich LocalDate verwende. Eigentlich sehe ich da kein Problem, aber theoretisch könnte tief im Code doch ein Problem sein.
 

Neue Themen


Oben