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
Munro FerenczFranceElwin Sharvill UNQUALIFIED
Leja CaldareraGermanyAmy Elsner UNQUALIFIED
Ashley DoeBrazilOnyama Limba QUALIFIED
Arvin AlbaresRussiaElwin Sharvill PROPOSAL
Nicolas IturbideAustraliaAmy Elsner UNQUALIFIED
Munro FerenczRussiaAnna Fali QUALIFIED
Morrow RutaUnited KingdomBernardo Dominic NEW
Salvatore StockhamItalyXuxue Feng NEW
Salvatore StockhamCanadaStephen Shaw NEGOTIATION
Ricardo GauchoSpainAsiya Javayant QUALIFIED
Aika InouyeGermanyIvan Magalhaes QUALIFIED
Greenwood BologniaSpainBernardo Dominic NEW
Nicolas IturbideItalyBernardo Dominic NEW
Ricardo GauchoRussiaOnyama Limba QUALIFIED
Tony FollerItalyIoni Bowcher QUALIFIED
Nicolas IturbideCanadaAmy Elsner UNQUALIFIED
Aika InouyeGermanyXuxue Feng UNQUALIFIED
Jefferson SchemmerAustraliaIoni Bowcher UNQUALIFIED
Jefferson SchemmerRussiaIvan Magalhaes UNQUALIFIED
Juan WieserAustraliaIvan Magalhaes UNQUALIFIED
Deepesh ChuiJapanAmy Elsner QUALIFIED
Johnson SergiGermanyOnyama Limba RENEWAL
Julie StensethSpainIvan Magalhaes NEGOTIATION
Silvio SlusarskiBrazilAsiya Javayant NEGOTIATION
Jeanfrancois VenereJapanXuxue Feng PROPOSAL
Aika InouyeFranceAsiya Javayant UNQUALIFIED
James ButtCanadaIoni Bowcher PROPOSAL
Aditya KuskoJapanAmy Elsner PROPOSAL
Adams MorascaGermanyBernardo Dominic RENEWAL
Octavia MaletFranceIoni Bowcher PROPOSAL
Clifford RimJapanXuxue Feng NEW
Deepesh ChuiCanadaAmy Elsner NEGOTIATION
Salvatore StockhamArgentinaIoni Bowcher RENEWAL
Kadeem FlosiAustraliaStephen Shaw NEGOTIATION
David DarakjyIndiaOnyama Limba QUALIFIED
Deepesh ChuiGermanyBernardo Dominic RENEWAL
Ashley DoeFranceStephen Shaw QUALIFIED
Salvatore StockhamFranceAmy Elsner NEGOTIATION
Maisha RulapaughArgentinaStephen Shaw RENEWAL
Munro FerenczAustraliaAsiya Javayant PROPOSAL
Costa DilliardArgentinaBernardo Dominic NEGOTIATION
Clifford RimCanadaIoni Bowcher PROPOSAL
Murillo MaletSpainBernardo Dominic UNQUALIFIED
Greenwood BologniaUnited KingdomAnna Fali RENEWAL
Sinclair WaycottGermanyAsiya Javayant NEGOTIATION
Isabel BowleySpainStephen Shaw UNQUALIFIED
Adams MorascaRussiaBernardo Dominic QUALIFIED
David DarakjyGermanyAmy Elsner NEGOTIATION
Francesco ShinkoAustraliaStephen Shaw PROPOSAL
Clifford RimBrazilIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey MacleadJapanXuxue Feng QUALIFIED
Antonio CaudySpainStephen Shaw QUALIFIED
Jennifer AmigonSpainAnna Fali PROPOSAL
Nicolas IturbideAustraliaIvan Magalhaes NEGOTIATION
Tony FollerItalyIvan Magalhaes NEW
Kadeem FlosiAustraliaIvan Magalhaes QUALIFIED
Adams MorascaJapanIoni Bowcher QUALIFIED
Greenwood BologniaJapanAnna Fali QUALIFIED
Isabel BowleyItalyElwin Sharvill RENEWAL
Kaitlin OstroskyRussiaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson SergiAustralia2021-10-04Benton, John B Jr UNQUALIFIED76Xuxue Feng
1001Silvio SlusarskiUnited Kingdom2021-10-17Chapman, Ross E Esq NEGOTIATION14Ioni Bowcher
1002Juan WieserAustralia2021-09-28King, Christopher A Esq RENEWAL44Ioni Bowcher
1003Clifford RimRussia2021-10-12Chemel, James L Cpa PROPOSAL24Stephen Shaw
1004Jones VocelkaCanada2021-09-22Truhlar And Truhlar Attys RENEWAL28Elwin Sharvill
1005Leja CaldareraJapan2021-09-19Dorl, James J Esq RENEWAL12Anna Fali
1006Salvatore StockhamArgentina2021-09-26Buckley Miller Wright NEGOTIATION42Amy Elsner
1007Salvatore StockhamArgentina2021-10-10Rangoni Of Florence NEW49Amy Elsner
1008Sinclair WaycottUnited Kingdom2021-10-10Chanay, Jeffrey A Esq UNQUALIFIED51Onyama Limba
1009Kadeem FlosiUnited Kingdom2021-10-07Chemel, James L Cpa PROPOSAL27Elwin Sharvill
1010Ivar PaprockiBrazil2021-10-09Rangoni Of Florence RENEWAL56Amy Elsner
1011Cody SaylorsUnited Kingdom2021-10-04Chapman, Ross E Esq QUALIFIED53Ioni Bowcher
1012Isabel BowleyAustralia2021-09-20Feiner Bros NEW73Anna Fali
1013Juan WieserIndia2021-10-13Morlong Associates NEW38Asiya Javayant
1014Julie StensethRussia2021-10-15Rousseaux, Michael Esq RENEWAL46Anna Fali
1015Aditya KuskoItaly2021-10-10Chemel, James L Cpa QUALIFIED94Bernardo Dominic
1016James ButtUnited Kingdom2021-10-16King, Christopher A Esq NEW25Ioni Bowcher
1017Faith GillianAustralia2021-09-19Chemel, James L Cpa QUALIFIED3Xuxue Feng
1018Stacey MacleadAustralia2021-10-01Rousseaux, Michael Esq UNQUALIFIED6Bernardo Dominic
1019Octavia MaletCanada2021-10-02Dorl, James J Esq RENEWAL5Elwin Sharvill
1020Francesco ShinkoSpain2021-09-28Chemel, James L Cpa NEW57Ivan Magalhaes
1021Nicolas IturbideUnited Kingdom2021-09-21Dorl, James J Esq NEW22Stephen Shaw
1022Wickens NestleArgentina2021-10-16King, Christopher A Esq NEGOTIATION13Stephen Shaw
1023Aditya KuskoGermany2021-09-26Printing Dimensions QUALIFIED29Xuxue Feng
1024David DarakjyCanada2021-10-11Printing Dimensions NEW68Bernardo Dominic
1025Misaki RoysterIndia2021-10-03Commercial Press PROPOSAL79Amy Elsner
1026Leja CaldareraGermany2021-09-30Printing Dimensions QUALIFIED97Elwin Sharvill
1027Ricardo GauchoIndia2021-09-18Morlong Associates PROPOSAL1Elwin Sharvill
1028Stacey MacleadItaly2021-10-06Chapman, Ross E Esq NEW77Bernardo Dominic
1029Tony FollerSpain2021-10-10Morlong Associates NEGOTIATION23Anna Fali
1030Izzy GarufiRussia2021-10-02Truhlar And Truhlar Attys NEW95Onyama Limba
1031Mayumi KolmetzBrazil2021-09-20King, Christopher A Esq UNQUALIFIED43Xuxue Feng
1032Darci PoquetteSpain2021-10-07Chemel, James L Cpa NEW71Onyama Limba
1033Greenwood BologniaRussia2021-10-04Chapman, Ross E Esq NEW71Elwin Sharvill
1034Misaki RoysterIndia2021-09-26Rangoni Of Florence NEW25Amy Elsner
1035Smith GlickArgentina2021-10-10Rangoni Of Florence NEGOTIATION56Ioni Bowcher
1036Greenwood BologniaGermany2021-10-15Chemel, James L Cpa UNQUALIFIED40Elwin Sharvill
1037Ricardo GauchoGermany2021-09-19Rangoni Of Florence UNQUALIFIED51Amy Elsner
1038Maisha RulapaughCanada2021-09-27Chemel, James L Cpa RENEWAL12Elwin Sharvill
1039David DarakjyAustralia2021-10-13Truhlar And Truhlar Attys NEW32Elwin Sharvill
1040Jefferson SchemmerBrazil2021-09-18Rousseaux, Michael Esq RENEWAL50Ioni Bowcher
1041Jones VocelkaSpain2021-09-25Rangoni Of Florence UNQUALIFIED58Ioni Bowcher
1042Jeanfrancois VenereRussia2021-09-21Chanay, Jeffrey A Esq RENEWAL76Ivan Magalhaes
1043Jones VocelkaAustralia2021-09-30Rangoni Of Florence NEW72Ioni Bowcher
1044Clifford RimArgentina2021-09-29Chemel, James L Cpa NEGOTIATION67Xuxue Feng
1045Jeanfrancois VenereFrance2021-09-18Morlong Associates NEGOTIATION17Xuxue Feng
1046Tony FollerAustralia2021-10-17Morlong Associates NEGOTIATION94Elwin Sharvill
1047Silvio SlusarskiUnited Kingdom2021-10-09Chanay, Jeffrey A Esq RENEWAL95Asiya Javayant
1048Aruna FigeroaAustralia2021-09-26Buckley Miller Wright PROPOSAL73Bernardo Dominic
1049Izzy GarufiIndia2021-09-20Buckley Miller Wright RENEWAL37Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Alejandro PerinArgentinaOnyama Limba PROPOSAL
Tony FollerAustraliaAsiya Javayant RENEWAL
Rodrigues CampainRussiaElwin Sharvill UNQUALIFIED
James ButtSpainIvan Magalhaes UNQUALIFIED
Antonio CaudyItalyElwin Sharvill NEGOTIATION
David DarakjyIndiaXuxue Feng NEW
Greenwood BologniaSpainIvan Magalhaes RENEWAL
Jones VocelkaIndiaAnna Fali NEW
Greenwood BologniaCanadaStephen Shaw RENEWAL
Faith GillianItalyXuxue Feng RENEWAL
Jennifer AmigonRussiaOnyama Limba PROPOSAL
Costa DilliardUnited KingdomIvan Magalhaes UNQUALIFIED
Silvio SlusarskiBrazilOnyama Limba NEW
Morrow RutaIndiaXuxue Feng NEGOTIATION
Octavia MaletAustraliaAnna Fali NEW
Maisha RulapaughUnited KingdomBernardo Dominic RENEWAL
Kaitlin OstroskyFranceAsiya Javayant NEGOTIATION
Rodrigues CampainGermanyStephen Shaw UNQUALIFIED
Ivar PaprockiJapanIoni Bowcher QUALIFIED
Jefferson SchemmerSpainIvan Magalhaes UNQUALIFIED
Izzy GarufiIndiaAnna Fali UNQUALIFIED
Alejandro PerinUnited KingdomElwin Sharvill NEGOTIATION
Wickens NestleArgentinaIvan Magalhaes UNQUALIFIED
Morrow RutaRussiaIoni Bowcher NEGOTIATION
Wickens NestleJapanIoni Bowcher QUALIFIED
Julie StensethItalyOnyama Limba UNQUALIFIED
Jennifer AmigonJapanAsiya Javayant NEGOTIATION
Smith GlickRussiaAsiya Javayant NEW
Octavia MaletJapanIvan Magalhaes PROPOSAL
Kadeem FlosiBrazilAsiya Javayant RENEWAL
Cody SaylorsBrazilElwin Sharvill NEW
Adams MorascaFranceElwin Sharvill PROPOSAL
Isabel BowleyItalyXuxue Feng PROPOSAL
Jeanfrancois VenereArgentinaStephen Shaw QUALIFIED
Darci PoquetteGermanyIoni Bowcher QUALIFIED
Faith GillianJapanAnna Fali NEGOTIATION
Claire TollnerArgentinaBernardo Dominic PROPOSAL
Deepesh ChuiBrazilElwin Sharvill QUALIFIED
Jeanfrancois VenereArgentinaIoni Bowcher NEW
Francesco ShinkoIndiaElwin Sharvill PROPOSAL
Rodrigues CampainBrazilAsiya Javayant QUALIFIED
Leon OldroydArgentinaIoni Bowcher NEW
Clifford RimFranceIoni Bowcher PROPOSAL
Faith GillianJapanAsiya Javayant UNQUALIFIED
Francesco ShinkoIndiaElwin Sharvill NEGOTIATION
Arvin AlbaresGermanyOnyama Limba QUALIFIED
Johnson SergiBrazilAmy Elsner UNQUALIFIED
Isabel BowleyRussiaAsiya Javayant RENEWAL
Maisha RulapaughItalyIoni Bowcher QUALIFIED
Alejandro PerinCanadaOnyama Limba QUALIFIED
Frozen Columns
Name
Mujtaba Nicka
Munro Ferencz
Juan Wieser
Francesco Shinko
Faith Gillian
Morrow Ruta
Leja Caldarera
Claire Tollner
Juan Wieser
Aika Inouye
Izzy Garufi
Tony Foller
Maria Marrier
Cody Saylors
Maria Marrier
Nicolas Iturbide
Darci Poquette
Johnson Sergi
Ivar Paprocki
Nicolas Iturbide
Adams Morasca
Ricardo Gaucho
Morrow Ruta
Wickens Nestle
Maisha Rulapaugh
Faith Gillian
Munro Ferencz
Claire Tollner
Julie Stenseth
Morrow Ruta
Aruna Figeroa
Mujtaba Nicka
Morrow Ruta
Greenwood Bolognia
Salvatore Stockham
Mayumi Kolmetz
Claire Tollner
Juan Wieser
Izzy Garufi
Jeanfrancois Venere
Alejandro Perin
Julie Stenseth
Izzy Garufi
Claire Tollner
Emily Whobrey
Stacey Maclead
Maria Marrier
Izzy Garufi
Murillo Malet
Smith Glick
IdCountryDate
1000Brazil2021-09-30
1001United Kingdom2021-10-05
1002Brazil2021-10-10
1003Italy2021-10-08
1004Canada2021-10-12
1005United Kingdom2021-09-30
1006Spain2021-10-07
1007Russia2021-10-01
1008Brazil2021-10-09
1009Spain2021-10-07
1010India2021-09-20
1011Argentina2021-09-27
1012Canada2021-10-12
1013Australia2021-09-24
1014Brazil2021-10-03
1015France2021-10-10
1016Argentina2021-10-09
1017Germany2021-09-19
1018Germany2021-10-16
1019Australia2021-09-20
1020Japan2021-10-11
1021Canada2021-09-20
1022Italy2021-10-02
1023Argentina2021-10-06
1024India2021-10-02
1025France2021-10-17
1026Russia2021-10-03
1027France2021-10-14
1028Australia2021-09-19
1029India2021-09-22
1030Italy2021-09-20
1031Russia2021-10-12
1032Spain2021-10-05
1033Canada2021-09-26
1034Italy2021-10-03
1035Japan2021-10-04
1036Canada2021-10-01
1037Germany2021-10-13
1038Australia2021-10-14
1039Brazil2021-10-08
1040United Kingdom2021-09-21
1041Japan2021-09-18
1042Canada2021-09-25
1043United Kingdom2021-10-10
1044Australia2021-09-19
1045France2021-10-14
1046Russia2021-10-14
1047Germany2021-09-18
1048Argentina2021-09-26
1049France2021-10-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
No records found.

<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: