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
Aruna FigeroaRussiaXuxue Feng RENEWAL
Juan WieserJapanIvan Magalhaes RENEWAL
Arvin AlbaresCanadaStephen Shaw QUALIFIED
Juan WieserCanadaStephen Shaw RENEWAL
Jeanfrancois VenereGermanyAsiya Javayant NEW
Salvatore StockhamRussiaAsiya Javayant UNQUALIFIED
Stacey MacleadItalyAsiya Javayant QUALIFIED
Smith GlickGermanyElwin Sharvill NEW
Greenwood BologniaIndiaAsiya Javayant RENEWAL
Sinclair WaycottJapanIvan Magalhaes UNQUALIFIED
Smith GlickCanadaOnyama Limba UNQUALIFIED
Misaki RoysterFranceXuxue Feng PROPOSAL
Jeanfrancois VenereItalyIvan Magalhaes PROPOSAL
Ivar PaprockiSpainOnyama Limba QUALIFIED
Julie StensethGermanyAnna Fali PROPOSAL
Rodrigues CampainUnited KingdomBernardo Dominic NEW
Ricardo GauchoRussiaXuxue Feng RENEWAL
Maria MarrierIndiaXuxue Feng UNQUALIFIED
Adams MorascaCanadaStephen Shaw QUALIFIED
Sinclair WaycottJapanStephen Shaw RENEWAL
Clifford RimBrazilStephen Shaw NEW
Adams MorascaArgentinaIoni Bowcher QUALIFIED
Clifford RimBrazilAmy Elsner NEW
Maisha RulapaughRussiaOnyama Limba NEW
Alejandro PerinIndiaXuxue Feng QUALIFIED
Cody SaylorsBrazilIvan Magalhaes NEW
Jeanfrancois VenereBrazilIvan Magalhaes RENEWAL
Alejandro PerinIndiaIoni Bowcher NEGOTIATION
Alejandro PerinItalyAsiya Javayant UNQUALIFIED
Cody SaylorsSpainElwin Sharvill QUALIFIED
Ricardo GauchoSpainXuxue Feng PROPOSAL
Francesco ShinkoArgentinaAsiya Javayant PROPOSAL
Cody SaylorsUnited KingdomElwin Sharvill NEGOTIATION
Isabel BowleyIndiaAnna Fali NEGOTIATION
Octavia MaletJapanOnyama Limba QUALIFIED
Morrow RutaArgentinaAsiya Javayant PROPOSAL
Adams MorascaBrazilBernardo Dominic QUALIFIED
Isabel BowleyArgentinaAnna Fali UNQUALIFIED
Rodrigues CampainRussiaXuxue Feng NEW
Munro FerenczArgentinaIoni Bowcher RENEWAL
Johnson SergiIndiaIvan Magalhaes NEW
Claire TollnerIndiaElwin Sharvill RENEWAL
Silvio SlusarskiRussiaAsiya Javayant PROPOSAL
Jennifer AmigonCanadaXuxue Feng QUALIFIED
Maria MarrierJapanOnyama Limba PROPOSAL
Chavez BriddickJapanBernardo Dominic PROPOSAL
Claire TollnerGermanyIoni Bowcher QUALIFIED
Deepesh ChuiFranceAnna Fali NEW
Sinclair WaycottArgentinaAsiya Javayant NEGOTIATION
Salvatore StockhamFranceIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon OldroydArgentinaIoni Bowcher UNQUALIFIED
Francesco ShinkoCanadaAsiya Javayant NEW
Darci PoquetteUnited KingdomStephen Shaw NEW
Murillo MaletBrazilAsiya Javayant NEW
Murillo MaletIndiaOnyama Limba NEGOTIATION
Morrow RutaIndiaXuxue Feng QUALIFIED
Emily WhobreyBrazilAmy Elsner QUALIFIED
Mayumi KolmetzGermanyIvan Magalhaes RENEWAL
Ashley DoeUnited KingdomBernardo Dominic RENEWAL
Nicolas IturbideFranceOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki RoysterJapan2021-05-07Feltz Printing Service PROPOSAL54Bernardo Dominic
1001Johnson SergiArgentina2021-05-13Feltz Printing Service NEW36Elwin Sharvill
1002Faith GillianIndia2021-04-19Chemel, James L Cpa RENEWAL60Elwin Sharvill
1003Francesco ShinkoGermany2021-05-01Printing Dimensions QUALIFIED64Elwin Sharvill
1004Adams MorascaIndia2021-04-16Morlong Associates NEW63Elwin Sharvill
1005Silvio SlusarskiAustralia2021-05-07Benton, John B Jr QUALIFIED5Anna Fali
1006Chavez BriddickItaly2021-05-05King, Christopher A Esq NEW94Ioni Bowcher
1007Leon OldroydJapan2021-04-27Morlong Associates PROPOSAL81Amy Elsner
1008Isabel BowleyCanada2021-05-12Benton, John B Jr UNQUALIFIED74Stephen Shaw
1009Mayumi KolmetzUnited Kingdom2021-04-23Truhlar And Truhlar Attys NEGOTIATION47Anna Fali
1010Nicolas IturbideAustralia2021-05-14Morlong Associates QUALIFIED4Amy Elsner
1011Maisha RulapaughUnited Kingdom2021-04-16Truhlar And Truhlar Attys RENEWAL96Ivan Magalhaes
1012Alejandro PerinCanada2021-04-18Truhlar And Truhlar Attys PROPOSAL63Onyama Limba
1013Faith GillianIndia2021-04-17Feltz Printing Service PROPOSAL73Xuxue Feng
1014Ashley DoeItaly2021-05-04Rousseaux, Michael Esq QUALIFIED85Stephen Shaw
1015James ButtJapan2021-04-17Commercial Press NEGOTIATION39Xuxue Feng
1016Aika InouyeCanada2021-04-28Buckley Miller Wright UNQUALIFIED51Onyama Limba
1017Greenwood BologniaAustralia2021-05-07Buckley Miller Wright NEGOTIATION98Elwin Sharvill
1018Mujtaba NickaAustralia2021-05-02King, Christopher A Esq QUALIFIED71Anna Fali
1019Kadeem FlosiIndia2021-04-25Rangoni Of Florence NEGOTIATION2Elwin Sharvill
1020Chavez BriddickGermany2021-04-29Commercial Press RENEWAL52Anna Fali
1021Greenwood BologniaFrance2021-04-18Benton, John B Jr NEW64Stephen Shaw
1022Darci PoquetteIndia2021-05-01Chanay, Jeffrey A Esq NEW68Ioni Bowcher
1023Jones VocelkaJapan2021-05-04Feiner Bros RENEWAL86Onyama Limba
1024Claire TollnerSpain2021-04-16Chapman, Ross E Esq UNQUALIFIED54Bernardo Dominic
1025Aruna FigeroaUnited Kingdom2021-05-02Feiner Bros NEW85Anna Fali
1026Kadeem FlosiFrance2021-05-11Printing Dimensions RENEWAL44Bernardo Dominic
1027Sinclair WaycottAustralia2021-05-14Truhlar And Truhlar Attys NEGOTIATION53Anna Fali
1028Maria MarrierItaly2021-04-23Truhlar And Truhlar Attys NEGOTIATION65Stephen Shaw
1029Jones VocelkaCanada2021-05-03Rangoni Of Florence UNQUALIFIED5Elwin Sharvill
1030Jefferson SchemmerBrazil2021-04-19King, Christopher A Esq RENEWAL15Elwin Sharvill
1031Aika InouyeJapan2021-05-05Printing Dimensions NEW62Stephen Shaw
1032Ashley DoeBrazil2021-05-14Truhlar And Truhlar Attys QUALIFIED77Elwin Sharvill
1033Silvio SlusarskiItaly2021-05-13Feltz Printing Service NEW68Onyama Limba
1034Chavez BriddickIndia2021-05-11Chanay, Jeffrey A Esq RENEWAL84Onyama Limba
1035Izzy GarufiIndia2021-04-25Chanay, Jeffrey A Esq QUALIFIED18Xuxue Feng
1036Misaki RoysterSpain2021-04-16Buckley Miller Wright UNQUALIFIED13Anna Fali
1037Aruna FigeroaSpain2021-04-23Chapman, Ross E Esq NEW99Ioni Bowcher
1038Jones VocelkaJapan2021-05-13Commercial Press NEGOTIATION91Asiya Javayant
1039Ricardo GauchoRussia2021-04-29Rangoni Of Florence UNQUALIFIED47Ivan Magalhaes
1040Cody SaylorsArgentina2021-04-29King, Christopher A Esq NEGOTIATION93Ivan Magalhaes
1041Juan WieserArgentina2021-05-01Dorl, James J Esq RENEWAL50Stephen Shaw
1042Smith GlickAustralia2021-04-28Morlong Associates NEW77Anna Fali
1043Octavia MaletFrance2021-04-17Buckley Miller Wright PROPOSAL83Ivan Magalhaes
1044James ButtItaly2021-05-11Printing Dimensions PROPOSAL30Asiya Javayant
1045Wickens NestleAustralia2021-04-26King, Christopher A Esq QUALIFIED47Amy Elsner
1046Tony FollerItaly2021-05-07Morlong Associates RENEWAL64Anna Fali
1047Octavia MaletUnited Kingdom2021-04-26Printing Dimensions NEW17Bernardo Dominic
1048Chavez BriddickUnited Kingdom2021-05-12Truhlar And Truhlar Attys RENEWAL65Elwin Sharvill
1049Jones VocelkaCanada2021-04-27Rousseaux, Michael Esq NEW70Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiUnited KingdomAsiya Javayant RENEWAL
Salvatore StockhamJapanXuxue Feng PROPOSAL
Octavia MaletItalyXuxue Feng NEW
Leon OldroydAustraliaXuxue Feng NEW
Nicolas IturbideUnited KingdomElwin Sharvill RENEWAL
Octavia MaletJapanAsiya Javayant QUALIFIED
Tony FollerItalyIvan Magalhaes NEGOTIATION
Rodrigues CampainUnited KingdomIoni Bowcher UNQUALIFIED
Nicolas IturbideUnited KingdomAmy Elsner NEGOTIATION
Octavia MaletArgentinaXuxue Feng NEGOTIATION
Stacey MacleadSpainElwin Sharvill RENEWAL
Silvio SlusarskiJapanBernardo Dominic UNQUALIFIED
Aditya KuskoJapanAmy Elsner RENEWAL
Claire TollnerBrazilIvan Magalhaes RENEWAL
Octavia MaletIndiaAnna Fali QUALIFIED
Claire TollnerUnited KingdomOnyama Limba RENEWAL
Tony FollerRussiaElwin Sharvill NEW
Aditya KuskoFranceOnyama Limba PROPOSAL
Emily WhobreyIndiaIvan Magalhaes PROPOSAL
Antonio CaudyAustraliaElwin Sharvill QUALIFIED
Alejandro PerinArgentinaAnna Fali RENEWAL
Antonio CaudyIndiaXuxue Feng PROPOSAL
Octavia MaletItalyIvan Magalhaes RENEWAL
Jennifer AmigonRussiaAnna Fali RENEWAL
Isabel BowleyItalyIvan Magalhaes QUALIFIED
Morrow RutaFranceAnna Fali UNQUALIFIED
Deepesh ChuiUnited KingdomStephen Shaw UNQUALIFIED
Jefferson SchemmerFranceStephen Shaw RENEWAL
Jefferson SchemmerItalyAmy Elsner RENEWAL
Jennifer AmigonGermanyXuxue Feng UNQUALIFIED
Deepesh ChuiCanadaAnna Fali RENEWAL
Ricardo GauchoArgentinaXuxue Feng QUALIFIED
Octavia MaletUnited KingdomOnyama Limba RENEWAL
Johnson SergiItalyAsiya Javayant PROPOSAL
Cody SaylorsFranceBernardo Dominic QUALIFIED
Isabel BowleyFranceElwin Sharvill QUALIFIED
Darci PoquetteAustraliaIvan Magalhaes RENEWAL
Darci PoquetteJapanIvan Magalhaes NEGOTIATION
Claire TollnerRussiaBernardo Dominic RENEWAL
Ashley DoeIndiaXuxue Feng QUALIFIED
Wickens NestleAustraliaElwin Sharvill QUALIFIED
Aditya KuskoBrazilAmy Elsner NEW
Claire TollnerIndiaBernardo Dominic UNQUALIFIED
Faith GillianItalyIvan Magalhaes QUALIFIED
Stacey MacleadIndiaAnna Fali PROPOSAL
Faith GillianGermanyXuxue Feng NEW
Octavia MaletRussiaStephen Shaw NEW
Julie StensethFranceOnyama Limba RENEWAL
Claire TollnerJapanXuxue Feng RENEWAL
Johnson SergiArgentinaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Smith Glick
Murillo Malet
Smith Glick
Deepesh Chui
Emily Whobrey
Jones Vocelka
Jefferson Schemmer
Isabel Bowley
Smith Glick
Chavez Briddick
Mujtaba Nicka
Maisha Rulapaugh
Juan Wieser
Smith Glick
Julie Stenseth
Jennifer Amigon
Maria Marrier
Jones Vocelka
Antonio Caudy
Octavia Malet
Costa Dilliard
Aditya Kusko
Izzy Garufi
Nicolas Iturbide
Juan Wieser
Clifford Rim
Stacey Maclead
Maisha Rulapaugh
Emily Whobrey
Maria Marrier
Stacey Maclead
Julie Stenseth
Misaki Royster
Alejandro Perin
Alejandro Perin
Ashley Doe
Ricardo Gaucho
Claire Tollner
Leon Oldroyd
Aditya Kusko
Ashley Doe
Ashley Doe
Julie Stenseth
Julie Stenseth
Aika Inouye
Kadeem Flosi
Mujtaba Nicka
Octavia Malet
Octavia Malet
Jeanfrancois Venere
IdCountryDate
1000Canada2021-05-02
1001Brazil2021-05-08
1002Germany2021-04-18
1003Italy2021-04-21
1004Germany2021-04-25
1005Italy2021-04-30
1006Japan2021-04-24
1007Japan2021-04-22
1008Australia2021-05-10
1009France2021-05-12
1010Germany2021-05-06
1011Germany2021-04-19
1012Italy2021-05-15
1013Italy2021-05-04
1014Germany2021-04-17
1015Japan2021-05-14
1016Spain2021-04-24
1017Japan2021-05-07
1018Canada2021-05-03
1019India2021-04-25
1020Italy2021-05-08
1021Italy2021-04-22
1022Australia2021-04-18
1023Canada2021-05-02
1024United Kingdom2021-04-17
1025Japan2021-04-19
1026Japan2021-05-10
1027Japan2021-05-02
1028France2021-05-05
1029Germany2021-05-03
1030Russia2021-05-12
1031Spain2021-05-10
1032Japan2021-05-10
1033Spain2021-04-20
1034Australia2021-05-02
1035Argentina2021-05-05
1036Brazil2021-04-16
1037United Kingdom2021-04-27
1038India2021-05-12
1039France2021-04-22
1040India2021-04-28
1041India2021-04-29
1042India2021-04-27
1043France2021-05-14
1044Australia2021-04-18
1045France2021-05-06
1046France2021-05-13
1047Canada2021-05-01
1048United Kingdom2021-05-03
1049Brazil2021-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas IturbideItalyElwin Sharvill RENEWAL
Smith GlickFranceXuxue Feng NEW
Antonio CaudyItalyAsiya Javayant NEGOTIATION
Chavez BriddickIndiaAsiya Javayant NEW
Julie StensethAustraliaStephen Shaw RENEWAL
Jeanfrancois VenereCanadaAnna Fali NEW
Salvatore StockhamArgentinaIvan Magalhaes QUALIFIED
James ButtSpainXuxue Feng RENEWAL
Greenwood BologniaCanadaStephen Shaw PROPOSAL
Julie StensethBrazilXuxue Feng NEW
Wickens NestleFranceBernardo Dominic NEW
Aditya KuskoJapanAnna Fali UNQUALIFIED
Maria MarrierCanadaStephen Shaw RENEWAL
Chavez BriddickBrazilOnyama Limba UNQUALIFIED
Cody SaylorsRussiaXuxue Feng QUALIFIED
Murillo MaletCanadaBernardo Dominic UNQUALIFIED
Faith GillianAustraliaElwin Sharvill NEGOTIATION
Nicolas IturbideSpainXuxue Feng UNQUALIFIED
Costa DilliardRussiaAmy Elsner NEGOTIATION
Maria MarrierSpainAnna Fali RENEWAL
Isabel BowleyRussiaAmy Elsner QUALIFIED
Munro FerenczIndiaStephen Shaw PROPOSAL
James ButtArgentinaAmy Elsner UNQUALIFIED
Faith GillianJapanXuxue Feng RENEWAL
Jennifer AmigonBrazilElwin Sharvill RENEWAL
Johnson SergiJapanAsiya Javayant UNQUALIFIED
James ButtCanadaIvan Magalhaes QUALIFIED
Ivar PaprockiAustraliaXuxue Feng NEW
Claire TollnerItalyXuxue Feng PROPOSAL
Mujtaba NickaCanadaAsiya Javayant PROPOSAL
Kaitlin OstroskyGermanyXuxue Feng UNQUALIFIED
Octavia MaletArgentinaBernardo Dominic PROPOSAL
Aika InouyeAustraliaAnna Fali RENEWAL
Aika InouyeGermanyIvan Magalhaes QUALIFIED
Aditya KuskoGermanyBernardo Dominic UNQUALIFIED
Jennifer AmigonUnited KingdomXuxue Feng RENEWAL
Ricardo GauchoJapanOnyama Limba UNQUALIFIED
Aditya KuskoCanadaAsiya Javayant NEW
Nicolas IturbideBrazilAsiya Javayant UNQUALIFIED
Adams MorascaIndiaElwin Sharvill NEW

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