Locale

Change the locale of the datepicker, schedule and client side validation messages.

Input Style

Free Themes

Built-in component themes created by the PrimeFaces Theme Designer.

PrimeOne Design

Saga Saga
Vela Vela
Arya Arya

Premium Themes

Premium themes are only available exclusively for PrimeFaces Theme Designer subscribers and therefore not included in PrimeFaces core.

Bootstrap light blue and dark blue themes are also included in PrimeFaces 10.x builds for Elite subscribers.

bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple

Legacy Free Themes

Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink
Nova Nova
Nova Nova Alt
Nova Nova Accent

PREMIUM TEMPLATES

Create awesome applications in no time using the premium templates and impress your users.

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Johnson SergiGermanyXuxue Feng NEW
Francesco ShinkoRussiaBernardo Dominic NEGOTIATION
Misaki RoysterGermanyXuxue Feng QUALIFIED
Aruna FigeroaFranceIvan Magalhaes PROPOSAL
Isabel BowleyAustraliaStephen Shaw NEW
Jeanfrancois VenereFranceIvan Magalhaes QUALIFIED
Francesco ShinkoRussiaOnyama Limba UNQUALIFIED
Costa DilliardGermanyStephen Shaw NEW
Juan WieserCanadaStephen Shaw QUALIFIED
Kadeem FlosiIndiaBernardo Dominic QUALIFIED
Aruna FigeroaUnited KingdomXuxue Feng PROPOSAL
Adams MorascaIndiaBernardo Dominic NEGOTIATION
Ivar PaprockiSpainAsiya Javayant PROPOSAL
James ButtRussiaStephen Shaw QUALIFIED
Kaitlin OstroskySpainAsiya Javayant QUALIFIED
Chavez BriddickRussiaAsiya Javayant NEGOTIATION
Smith GlickItalyBernardo Dominic NEGOTIATION
Deepesh ChuiBrazilStephen Shaw NEGOTIATION
Jeanfrancois VenereItalyBernardo Dominic NEGOTIATION
Aruna FigeroaCanadaIoni Bowcher PROPOSAL
Antonio CaudyUnited KingdomAnna Fali RENEWAL
Nicolas IturbideBrazilAmy Elsner NEGOTIATION
Leja CaldareraArgentinaXuxue Feng NEW
Arvin AlbaresJapanXuxue Feng QUALIFIED
Antonio CaudyGermanyIoni Bowcher NEGOTIATION
Kadeem FlosiItalyAsiya Javayant RENEWAL
Aditya KuskoUnited KingdomIvan Magalhaes QUALIFIED
Wickens NestleGermanyAsiya Javayant UNQUALIFIED
Kadeem FlosiCanadaXuxue Feng PROPOSAL
Aruna FigeroaRussiaXuxue Feng UNQUALIFIED
Leon OldroydJapanStephen Shaw UNQUALIFIED
Jennifer AmigonRussiaIvan Magalhaes QUALIFIED
Octavia MaletFranceAsiya Javayant UNQUALIFIED
Antonio CaudyIndiaBernardo Dominic UNQUALIFIED
Antonio CaudyCanadaAmy Elsner QUALIFIED
Rodrigues CampainBrazilBernardo Dominic NEGOTIATION
Murillo MaletFranceStephen Shaw RENEWAL
Adams MorascaIndiaOnyama Limba PROPOSAL
Salvatore StockhamItalyAsiya Javayant RENEWAL
Ashley DoeBrazilIvan Magalhaes NEGOTIATION
Rodrigues CampainSpainAnna Fali QUALIFIED
Misaki RoysterUnited KingdomIoni Bowcher RENEWAL
Clifford RimAustraliaStephen Shaw UNQUALIFIED
Leja CaldareraBrazilAnna Fali RENEWAL
Julie StensethAustraliaAmy Elsner NEW
Johnson SergiItalyAsiya Javayant RENEWAL
Deepesh ChuiJapanAnna Fali UNQUALIFIED
Deepesh ChuiJapanIvan Magalhaes UNQUALIFIED
Misaki RoysterUnited KingdomBernardo Dominic RENEWAL
Mujtaba NickaAustraliaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi KolmetzArgentinaStephen Shaw NEGOTIATION
Kadeem FlosiRussiaIoni Bowcher NEGOTIATION
Smith GlickBrazilBernardo Dominic PROPOSAL
Jennifer AmigonIndiaStephen Shaw RENEWAL
Leon OldroydRussiaIoni Bowcher NEW
Maria MarrierAustraliaElwin Sharvill UNQUALIFIED
Johnson SergiFranceElwin Sharvill NEGOTIATION
Alejandro PerinBrazilIoni Bowcher UNQUALIFIED
Mayumi KolmetzBrazilXuxue Feng RENEWAL
Francesco ShinkoArgentinaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoRussia2021-11-27Feiner Bros RENEWAL41Amy Elsner
1001Johnson SergiSpain2021-11-08Dorl, James J Esq PROPOSAL42Xuxue Feng
1002Adams MorascaAustralia2021-12-06Chanay, Jeffrey A Esq UNQUALIFIED15Ivan Magalhaes
1003Morrow RutaAustralia2021-12-03Truhlar And Truhlar Attys NEW77Onyama Limba
1004Johnson SergiFrance2021-11-24Printing Dimensions QUALIFIED96Xuxue Feng
1005Francesco ShinkoCanada2021-11-19Benton, John B Jr NEGOTIATION53Ioni Bowcher
1006Sinclair WaycottUnited Kingdom2021-12-05Printing Dimensions QUALIFIED92Ivan Magalhaes
1007Mayumi KolmetzRussia2021-12-01Benton, John B Jr NEW31Asiya Javayant
1008Ricardo GauchoJapan2021-12-02Printing Dimensions PROPOSAL88Stephen Shaw
1009Ivar PaprockiGermany2021-12-03Truhlar And Truhlar Attys RENEWAL56Amy Elsner
1010Leon OldroydArgentina2021-11-30Benton, John B Jr UNQUALIFIED65Anna Fali
1011Clifford RimCanada2021-11-11Printing Dimensions NEGOTIATION80Xuxue Feng
1012Stacey MacleadItaly2021-11-15Rangoni Of Florence UNQUALIFIED81Onyama Limba
1013Claire TollnerAustralia2021-12-03Chemel, James L Cpa UNQUALIFIED19Bernardo Dominic
1014Isabel BowleyCanada2021-11-15Rousseaux, Michael Esq NEW81Onyama Limba
1015Ashley DoeRussia2021-11-25Feltz Printing Service NEW60Ivan Magalhaes
1016Johnson SergiItaly2021-12-04Buckley Miller Wright NEW78Bernardo Dominic
1017Ricardo GauchoJapan2021-12-02Printing Dimensions UNQUALIFIED84Asiya Javayant
1018Munro FerenczBrazil2021-11-27Truhlar And Truhlar Attys UNQUALIFIED67Amy Elsner
1019David DarakjyCanada2021-11-11Buckley Miller Wright RENEWAL40Ioni Bowcher
1020Ricardo GauchoAustralia2021-11-07Feltz Printing Service RENEWAL4Ivan Magalhaes
1021Salvatore StockhamJapan2021-11-09Chapman, Ross E Esq UNQUALIFIED59Onyama Limba
1022Johnson SergiRussia2021-12-01Dorl, James J Esq NEW76Anna Fali
1023Costa DilliardGermany2021-11-18Rousseaux, Michael Esq NEGOTIATION54Ioni Bowcher
1024Ashley DoeRussia2021-11-11Commercial Press UNQUALIFIED0Xuxue Feng
1025Misaki RoysterAustralia2021-12-01Rousseaux, Michael Esq PROPOSAL59Ivan Magalhaes
1026Cody SaylorsBrazil2021-12-05Chapman, Ross E Esq QUALIFIED85Xuxue Feng
1027Darci PoquetteItaly2021-11-24Rousseaux, Michael Esq QUALIFIED98Elwin Sharvill
1028Isabel BowleyItaly2021-11-18Morlong Associates NEW78Elwin Sharvill
1029Greenwood BologniaItaly2021-11-15Benton, John B Jr UNQUALIFIED97Anna Fali
1030Kaitlin OstroskyGermany2021-11-25Truhlar And Truhlar Attys NEW48Xuxue Feng
1031Munro FerenczCanada2021-11-14Morlong Associates UNQUALIFIED94Onyama Limba
1032Antonio CaudyArgentina2021-11-10Dorl, James J Esq QUALIFIED83Amy Elsner
1033Greenwood BologniaRussia2021-11-09Chemel, James L Cpa RENEWAL89Onyama Limba
1034Rodrigues CampainFrance2021-11-18Benton, John B Jr NEGOTIATION89Elwin Sharvill
1035Aditya KuskoCanada2021-11-07Chapman, Ross E Esq NEGOTIATION78Stephen Shaw
1036Emily WhobreyItaly2021-11-20Printing Dimensions NEGOTIATION72Elwin Sharvill
1037Francesco ShinkoBrazil2021-11-29Rousseaux, Michael Esq PROPOSAL31Amy Elsner
1038Francesco ShinkoBrazil2021-11-10Rangoni Of Florence NEGOTIATION4Anna Fali
1039Morrow RutaSpain2021-12-02Chapman, Ross E Esq UNQUALIFIED71Amy Elsner
1040Mujtaba NickaFrance2021-11-14Chapman, Ross E Esq NEW60Asiya Javayant
1041Claire TollnerFrance2021-11-07Chapman, Ross E Esq RENEWAL63Stephen Shaw
1042Octavia MaletFrance2021-12-03Truhlar And Truhlar Attys NEW1Asiya Javayant
1043David DarakjyIndia2021-12-06Printing Dimensions PROPOSAL59Xuxue Feng
1044David DarakjySpain2021-11-14Truhlar And Truhlar Attys QUALIFIED15Onyama Limba
1045Cody SaylorsBrazil2021-11-07Feltz Printing Service RENEWAL70Xuxue Feng
1046Aika InouyeCanada2021-11-23Rousseaux, Michael Esq UNQUALIFIED10Elwin Sharvill
1047Leon OldroydIndia2021-11-08Benton, John B Jr UNQUALIFIED19Amy Elsner
1048Leon OldroydAustralia2021-11-21King, Christopher A Esq RENEWAL39Onyama Limba
1049Kaitlin OstroskyCanada2021-11-23Rangoni Of Florence UNQUALIFIED83Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereGermanyElwin Sharvill QUALIFIED
Wickens NestleBrazilAsiya Javayant PROPOSAL
Nicolas IturbideCanadaStephen Shaw QUALIFIED
Greenwood BologniaAustraliaIvan Magalhaes NEW
Juan WieserFranceAmy Elsner QUALIFIED
Deepesh ChuiRussiaStephen Shaw PROPOSAL
Jeanfrancois VenereBrazilAnna Fali RENEWAL
Smith GlickIndiaAnna Fali UNQUALIFIED
Kadeem FlosiAustraliaStephen Shaw QUALIFIED
Sinclair WaycottGermanyElwin Sharvill UNQUALIFIED
Cody SaylorsJapanAmy Elsner NEW
Mujtaba NickaAustraliaIvan Magalhaes NEGOTIATION
Isabel BowleyFranceIoni Bowcher NEGOTIATION
Claire TollnerJapanElwin Sharvill NEGOTIATION
Stacey MacleadRussiaStephen Shaw RENEWAL
Francesco ShinkoIndiaIoni Bowcher PROPOSAL
Isabel BowleyArgentinaXuxue Feng RENEWAL
Maisha RulapaughItalyAsiya Javayant NEGOTIATION
Faith GillianArgentinaBernardo Dominic PROPOSAL
Greenwood BologniaSpainIvan Magalhaes UNQUALIFIED
David DarakjyGermanyAsiya Javayant PROPOSAL
Clifford RimArgentinaXuxue Feng QUALIFIED
Rodrigues CampainIndiaStephen Shaw RENEWAL
Izzy GarufiItalyIoni Bowcher NEW
Ashley DoeIndiaIoni Bowcher PROPOSAL
Ashley DoeSpainBernardo Dominic PROPOSAL
Nicolas IturbideBrazilAsiya Javayant NEW
Isabel BowleyIndiaIoni Bowcher RENEWAL
Silvio SlusarskiRussiaBernardo Dominic PROPOSAL
Munro FerenczBrazilOnyama Limba QUALIFIED
James ButtIndiaXuxue Feng NEGOTIATION
Juan WieserAustraliaAnna Fali NEW
Francesco ShinkoSpainIoni Bowcher UNQUALIFIED
Cody SaylorsIndiaXuxue Feng PROPOSAL
Sinclair WaycottBrazilOnyama Limba RENEWAL
Maisha RulapaughIndiaAmy Elsner PROPOSAL
Murillo MaletRussiaXuxue Feng RENEWAL
Clifford RimFranceIoni Bowcher QUALIFIED
Munro FerenczIndiaBernardo Dominic NEW
Aika InouyeAustraliaAnna Fali QUALIFIED
Faith GillianRussiaAmy Elsner NEW
Rodrigues CampainItalyStephen Shaw QUALIFIED
Darci PoquetteGermanyStephen Shaw NEGOTIATION
David DarakjyFranceStephen Shaw QUALIFIED
Ashley DoeAustraliaBernardo Dominic RENEWAL
Leon OldroydRussiaBernardo Dominic PROPOSAL
Deepesh ChuiIndiaBernardo Dominic RENEWAL
Julie StensethCanadaElwin Sharvill UNQUALIFIED
Julie StensethRussiaAmy Elsner RENEWAL
Faith GillianGermanyBernardo Dominic NEW
Frozen Columns
Name
Octavia Malet
Munro Ferencz
Nicolas Iturbide
Emily Whobrey
Emily Whobrey
Misaki Royster
Isabel Bowley
David Darakjy
Tony Foller
Claire Tollner
Silvio Slusarski
Deepesh Chui
Tony Foller
Julie Stenseth
Antonio Caudy
Silvio Slusarski
Costa Dilliard
Ivar Paprocki
Morrow Ruta
Arvin Albares
Julie Stenseth
Deepesh Chui
Arvin Albares
Faith Gillian
Kaitlin Ostrosky
Aika Inouye
Nicolas Iturbide
Izzy Garufi
Stacey Maclead
Salvatore Stockham
Leja Caldarera
Faith Gillian
Darci Poquette
Deepesh Chui
Wickens Nestle
Adams Morasca
Aditya Kusko
Maria Marrier
Juan Wieser
Johnson Sergi
Jones Vocelka
Murillo Malet
Darci Poquette
Aditya Kusko
David Darakjy
Arvin Albares
Rodrigues Campain
Alejandro Perin
Jefferson Schemmer
Ricardo Gaucho
IdCountryDate
1000France2021-11-10
1001France2021-12-03
1002Germany2021-11-29
1003Italy2021-11-20
1004Canada2021-11-28
1005United Kingdom2021-12-06
1006India2021-11-25
1007Argentina2021-12-03
1008Spain2021-11-12
1009Spain2021-12-06
1010France2021-11-29
1011Argentina2021-11-10
1012United Kingdom2021-11-17
1013France2021-11-22
1014Argentina2021-11-15
1015Italy2021-11-29
1016Italy2021-11-27
1017Spain2021-11-13
1018Australia2021-11-12
1019Argentina2021-12-05
1020Germany2021-11-22
1021Russia2021-12-04
1022Spain2021-11-22
1023France2021-11-21
1024Japan2021-12-03
1025Italy2021-11-17
1026Russia2021-11-15
1027Argentina2021-11-18
1028Canada2021-11-26
1029United Kingdom2021-11-09
1030Italy2021-11-25
1031Brazil2021-11-16
1032Italy2021-11-21
1033Italy2021-11-10
1034Argentina2021-11-11
1035Spain2021-11-12
1036Japan2021-11-11
1037Canada2021-11-15
1038France2021-12-06
1039Germany2021-11-14
1040Canada2021-11-08
1041Germany2021-11-14
1042Italy2021-11-12
1043Italy2021-11-21
1044Australia2021-11-10
1045Australia2021-11-29
1046Russia2021-12-05
1047Argentina2021-11-10
1048Italy2021-11-08
1049Russia2021-11-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyRussiaElwin Sharvill UNQUALIFIED
Morrow RutaCanadaBernardo Dominic QUALIFIED
Chavez BriddickIndiaAsiya Javayant UNQUALIFIED
Ricardo GauchoSpainBernardo Dominic NEW
Ashley DoeItalyElwin Sharvill RENEWAL
Octavia MaletBrazilXuxue Feng UNQUALIFIED
Murillo MaletJapanBernardo Dominic NEW
Maria MarrierBrazilOnyama Limba NEW
Morrow RutaItalyAmy Elsner UNQUALIFIED
Wickens NestleArgentinaXuxue Feng QUALIFIED
Smith GlickJapanXuxue Feng PROPOSAL
Julie StensethIndiaElwin Sharvill PROPOSAL
Darci PoquetteCanadaBernardo Dominic NEGOTIATION
Wickens NestleArgentinaAmy Elsner NEGOTIATION
Deepesh ChuiJapanBernardo Dominic NEW
Nicolas IturbideRussiaIvan Magalhaes NEW
Rodrigues CampainGermanyIvan Magalhaes RENEWAL
Aruna FigeroaSpainIoni Bowcher PROPOSAL
Kadeem FlosiGermanyAsiya Javayant NEGOTIATION
Nicolas IturbideItalyIoni Bowcher RENEWAL
Maria MarrierIndiaBernardo Dominic NEGOTIATION
Arvin AlbaresBrazilOnyama Limba UNQUALIFIED
Aika InouyeArgentinaOnyama Limba QUALIFIED
Ivar PaprockiRussiaAsiya Javayant QUALIFIED
Antonio CaudySpainXuxue Feng PROPOSAL
Smith GlickBrazilBernardo Dominic UNQUALIFIED
James ButtFranceIvan Magalhaes UNQUALIFIED
Isabel BowleyJapanXuxue Feng NEW
Francesco ShinkoIndiaStephen Shaw NEW
David DarakjyItalyXuxue Feng QUALIFIED
Aditya KuskoSpainBernardo Dominic QUALIFIED
Johnson SergiSpainXuxue Feng RENEWAL
Leon OldroydArgentinaIoni Bowcher NEW
Deepesh ChuiFranceAsiya Javayant RENEWAL
Jennifer AmigonUnited KingdomStephen Shaw RENEWAL
Ivar PaprockiItalyIvan Magalhaes PROPOSAL
Maria MarrierRussiaIvan Magalhaes UNQUALIFIED
Clifford RimBrazilIvan Magalhaes RENEWAL
David DarakjySpainAnna Fali NEGOTIATION
Wickens NestleJapanIvan Magalhaes UNQUALIFIED

<style type="text/css">
    .ui-datatable-frozenlayout-left {
        width: 20%;
    }

    .ui-datatable-frozenlayout-right {
        width: 80%;
    }
</style>


<h:form>
    <div class="card">
        <h5 style="margin-top:0">Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers1}" scrollable="true" scrollHeight="250">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers2}" scrollable="true" scrollWidth="600">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal and Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers3}" scrollable="true" scrollWidth="50%" scrollHeight="250">
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
            <p:column headerText="Company" footerText="Company">
                <h:outputText value="#{customer.company}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
            <p:column headerText="Activity" footerText="Activity">
                <h:outputText value="#{customer.activity}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers4}" scrollable="true" scrollHeight="250"
                     frozenRows="2">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Columns</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers5}" scrollable="true" scrollHeight="250"
                     scrollWidth="300" frozenColumns="1">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Virtual Scrolling - 20000 Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.lazyModel}" scrollRows="20" scrollable="true"
                     virtualScroll="true" scrollHeight="200" rows="40" style="margin-bottom:0">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>

Session expired

Reloading page

Message:
StackTrace: