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
Jefferson SchemmerBrazilIoni Bowcher NEW
Mayumi KolmetzItalyAmy Elsner RENEWAL
Rodrigues CampainBrazilAmy Elsner NEGOTIATION
Arvin AlbaresBrazilAnna Fali QUALIFIED
Izzy GarufiBrazilAsiya Javayant NEGOTIATION
Kadeem FlosiCanadaOnyama Limba NEGOTIATION
Arvin AlbaresAustraliaAnna Fali NEW
Mayumi KolmetzCanadaIvan Magalhaes PROPOSAL
Ashley DoeSpainElwin Sharvill NEW
Francesco ShinkoSpainIvan Magalhaes NEW
Maria MarrierUnited KingdomIvan Magalhaes QUALIFIED
Aditya KuskoBrazilStephen Shaw PROPOSAL
Murillo MaletCanadaAsiya Javayant NEGOTIATION
Rodrigues CampainJapanAmy Elsner UNQUALIFIED
Faith GillianSpainElwin Sharvill UNQUALIFIED
Antonio CaudyCanadaAnna Fali RENEWAL
Chavez BriddickGermanyXuxue Feng NEW
Aruna FigeroaBrazilAnna Fali QUALIFIED
Misaki RoysterBrazilStephen Shaw UNQUALIFIED
Stacey MacleadRussiaStephen Shaw NEGOTIATION
Adams MorascaAustraliaElwin Sharvill PROPOSAL
Kaitlin OstroskyArgentinaStephen Shaw QUALIFIED
Maisha RulapaughIndiaElwin Sharvill QUALIFIED
Darci PoquetteJapanOnyama Limba RENEWAL
Jones VocelkaAustraliaAmy Elsner PROPOSAL
Aika InouyeCanadaAmy Elsner RENEWAL
Murillo MaletFranceOnyama Limba RENEWAL
Emily WhobreyCanadaElwin Sharvill NEW
Sinclair WaycottArgentinaAnna Fali UNQUALIFIED
Jennifer AmigonGermanyBernardo Dominic NEGOTIATION
Faith GillianSpainOnyama Limba PROPOSAL
Wickens NestleJapanBernardo Dominic NEGOTIATION
Salvatore StockhamCanadaOnyama Limba NEGOTIATION
Ashley DoeIndiaStephen Shaw UNQUALIFIED
Kadeem FlosiAustraliaOnyama Limba QUALIFIED
Jefferson SchemmerJapanXuxue Feng QUALIFIED
Salvatore StockhamJapanBernardo Dominic UNQUALIFIED
Alejandro PerinCanadaAnna Fali NEW
Faith GillianCanadaAnna Fali RENEWAL
Ivar PaprockiFranceAmy Elsner NEGOTIATION
Faith GillianUnited KingdomBernardo Dominic NEW
Johnson SergiFranceBernardo Dominic QUALIFIED
Arvin AlbaresCanadaStephen Shaw NEW
Aika InouyeUnited KingdomXuxue Feng NEGOTIATION
Francesco ShinkoItalyAsiya Javayant QUALIFIED
Isabel BowleyFranceOnyama Limba QUALIFIED
Morrow RutaCanadaElwin Sharvill NEW
Alejandro PerinFranceStephen Shaw NEGOTIATION
Johnson SergiFranceXuxue Feng NEGOTIATION
Kadeem FlosiFranceIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Aditya KuskoItalyElwin Sharvill NEGOTIATION
Izzy GarufiItalyXuxue Feng UNQUALIFIED
Aditya KuskoUnited KingdomOnyama Limba NEGOTIATION
Johnson SergiAustraliaAnna Fali NEW
Claire TollnerRussiaAsiya Javayant RENEWAL
Ivar PaprockiSpainOnyama Limba UNQUALIFIED
Leja CaldareraBrazilAsiya Javayant PROPOSAL
Aika InouyeCanadaBernardo Dominic NEGOTIATION
Cody SaylorsArgentinaAnna Fali NEGOTIATION
David DarakjyUnited KingdomElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony FollerCanada2021-10-11Rangoni Of Florence UNQUALIFIED61Stephen Shaw
1001Juan WieserUnited Kingdom2021-09-26Rousseaux, Michael Esq RENEWAL0Elwin Sharvill
1002Deepesh ChuiItaly2021-09-23Chanay, Jeffrey A Esq NEW18Xuxue Feng
1003James ButtItaly2021-10-10Chapman, Ross E Esq PROPOSAL93Asiya Javayant
1004Tony FollerUnited Kingdom2021-09-26Feltz Printing Service RENEWAL36Asiya Javayant
1005Chavez BriddickRussia2021-10-16King, Christopher A Esq QUALIFIED98Stephen Shaw
1006Kaitlin OstroskyGermany2021-10-16King, Christopher A Esq UNQUALIFIED92Asiya Javayant
1007Darci PoquetteArgentina2021-10-01Dorl, James J Esq NEGOTIATION82Xuxue Feng
1008Tony FollerUnited Kingdom2021-10-18Buckley Miller Wright RENEWAL52Elwin Sharvill
1009Francesco ShinkoUnited Kingdom2021-09-26Dorl, James J Esq RENEWAL64Amy Elsner
1010Leja CaldareraSpain2021-10-15Morlong Associates QUALIFIED94Anna Fali
1011Ashley DoeRussia2021-10-16Chemel, James L Cpa PROPOSAL13Amy Elsner
1012Deepesh ChuiBrazil2021-10-18Buckley Miller Wright UNQUALIFIED7Amy Elsner
1013Mujtaba NickaFrance2021-10-02Chanay, Jeffrey A Esq NEW79Elwin Sharvill
1014Misaki RoysterAustralia2021-10-06Chanay, Jeffrey A Esq NEW73Bernardo Dominic
1015Aditya KuskoBrazil2021-10-18Benton, John B Jr UNQUALIFIED22Asiya Javayant
1016Faith GillianGermany2021-09-23Rousseaux, Michael Esq RENEWAL61Xuxue Feng
1017Mayumi KolmetzSpain2021-10-04Morlong Associates NEGOTIATION74Asiya Javayant
1018Darci PoquetteBrazil2021-10-03Chanay, Jeffrey A Esq QUALIFIED41Stephen Shaw
1019Munro FerenczAustralia2021-09-29Benton, John B Jr UNQUALIFIED7Onyama Limba
1020Maisha RulapaughRussia2021-10-01Chemel, James L Cpa PROPOSAL91Amy Elsner
1021Kadeem FlosiGermany2021-10-15King, Christopher A Esq NEGOTIATION33Stephen Shaw
1022Alejandro PerinIndia2021-09-27Rousseaux, Michael Esq PROPOSAL30Elwin Sharvill
1023Maria MarrierFrance2021-09-26Chemel, James L Cpa UNQUALIFIED41Onyama Limba
1024Cody SaylorsBrazil2021-10-17Morlong Associates QUALIFIED69Anna Fali
1025Arvin AlbaresIndia2021-09-30Morlong Associates UNQUALIFIED83Stephen Shaw
1026Jefferson SchemmerFrance2021-09-21Dorl, James J Esq UNQUALIFIED8Asiya Javayant
1027Jeanfrancois VenereAustralia2021-09-23King, Christopher A Esq RENEWAL32Elwin Sharvill
1028Silvio SlusarskiGermany2021-10-02Truhlar And Truhlar Attys PROPOSAL44Ioni Bowcher
1029Arvin AlbaresJapan2021-09-24Chapman, Ross E Esq NEW17Asiya Javayant
1030Claire TollnerCanada2021-10-08Chapman, Ross E Esq PROPOSAL1Anna Fali
1031James ButtAustralia2021-10-18Buckley Miller Wright UNQUALIFIED73Onyama Limba
1032Ricardo GauchoIndia2021-09-28Buckley Miller Wright UNQUALIFIED61Onyama Limba
1033Silvio SlusarskiItaly2021-09-25Chapman, Ross E Esq PROPOSAL63Anna Fali
1034Mayumi KolmetzUnited Kingdom2021-10-01Morlong Associates UNQUALIFIED30Ioni Bowcher
1035Jeanfrancois VenereFrance2021-10-08Morlong Associates PROPOSAL74Xuxue Feng
1036David DarakjyRussia2021-10-13Feiner Bros RENEWAL17Elwin Sharvill
1037Jones VocelkaCanada2021-10-16Commercial Press PROPOSAL25Ivan Magalhaes
1038David DarakjyArgentina2021-09-21Buckley Miller Wright QUALIFIED25Bernardo Dominic
1039Jeanfrancois VenereRussia2021-10-14Printing Dimensions PROPOSAL8Ioni Bowcher
1040Deepesh ChuiGermany2021-10-06Chapman, Ross E Esq NEGOTIATION10Xuxue Feng
1041Francesco ShinkoItaly2021-10-09Printing Dimensions UNQUALIFIED63Ioni Bowcher
1042Emily WhobreyItaly2021-10-01Buckley Miller Wright UNQUALIFIED21Bernardo Dominic
1043Mujtaba NickaRussia2021-10-16Commercial Press QUALIFIED91Ioni Bowcher
1044Stacey MacleadCanada2021-10-09King, Christopher A Esq NEGOTIATION56Elwin Sharvill
1045Wickens NestleGermany2021-10-11Dorl, James J Esq QUALIFIED21Stephen Shaw
1046Sinclair WaycottRussia2021-09-22Printing Dimensions NEGOTIATION31Onyama Limba
1047Faith GillianGermany2021-10-13Printing Dimensions UNQUALIFIED60Onyama Limba
1048Francesco ShinkoRussia2021-10-11Commercial Press PROPOSAL42Anna Fali
1049Ivar PaprockiBrazil2021-09-22Rousseaux, Michael Esq PROPOSAL46Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamBrazilIvan Magalhaes NEGOTIATION
Ivar PaprockiIndiaAnna Fali UNQUALIFIED
Francesco ShinkoSpainElwin Sharvill QUALIFIED
Jones VocelkaItalyXuxue Feng UNQUALIFIED
Darci PoquetteBrazilElwin Sharvill QUALIFIED
Ivar PaprockiFranceIoni Bowcher NEW
Antonio CaudyIndiaIvan Magalhaes NEW
Rodrigues CampainItalyXuxue Feng NEW
Stacey MacleadCanadaElwin Sharvill QUALIFIED
David DarakjyJapanAsiya Javayant NEGOTIATION
Smith GlickFranceStephen Shaw PROPOSAL
Arvin AlbaresItalyAmy Elsner QUALIFIED
Antonio CaudyArgentinaOnyama Limba NEW
Leon OldroydItalyXuxue Feng RENEWAL
Alejandro PerinSpainXuxue Feng NEW
Mujtaba NickaSpainIvan Magalhaes UNQUALIFIED
Greenwood BologniaFranceStephen Shaw NEW
Izzy GarufiBrazilStephen Shaw RENEWAL
David DarakjySpainBernardo Dominic PROPOSAL
Juan WieserAustraliaAnna Fali PROPOSAL
Antonio CaudyUnited KingdomXuxue Feng RENEWAL
Deepesh ChuiUnited KingdomAsiya Javayant RENEWAL
Jennifer AmigonSpainElwin Sharvill UNQUALIFIED
Isabel BowleyFranceXuxue Feng RENEWAL
Chavez BriddickJapanStephen Shaw RENEWAL
David DarakjySpainBernardo Dominic RENEWAL
Kaitlin OstroskyItalyBernardo Dominic NEW
Salvatore StockhamAustraliaElwin Sharvill NEW
Jeanfrancois VenereGermanyAmy Elsner RENEWAL
Salvatore StockhamRussiaIvan Magalhaes RENEWAL
Francesco ShinkoFranceStephen Shaw PROPOSAL
Cody SaylorsItalyAsiya Javayant QUALIFIED
David DarakjyCanadaXuxue Feng UNQUALIFIED
Johnson SergiBrazilStephen Shaw RENEWAL
Faith GillianJapanAnna Fali PROPOSAL
Chavez BriddickRussiaXuxue Feng NEW
Arvin AlbaresJapanBernardo Dominic RENEWAL
Munro FerenczArgentinaAsiya Javayant PROPOSAL
Jefferson SchemmerFranceAnna Fali QUALIFIED
Ivar PaprockiCanadaAmy Elsner PROPOSAL
Jennifer AmigonUnited KingdomAmy Elsner QUALIFIED
Ashley DoeItalyAnna Fali NEW
Nicolas IturbideFranceIoni Bowcher RENEWAL
Chavez BriddickItalyIvan Magalhaes UNQUALIFIED
Juan WieserCanadaIvan Magalhaes QUALIFIED
Octavia MaletGermanyAnna Fali QUALIFIED
Tony FollerRussiaBernardo Dominic QUALIFIED
Mujtaba NickaIndiaStephen Shaw NEGOTIATION
Sinclair WaycottSpainIoni Bowcher NEGOTIATION
Ashley DoeFranceStephen Shaw NEGOTIATION
Frozen Columns
Name
Wickens Nestle
Johnson Sergi
Jennifer Amigon
Wickens Nestle
Munro Ferencz
Clifford Rim
Leon Oldroyd
Claire Tollner
Adams Morasca
Aditya Kusko
Stacey Maclead
Mayumi Kolmetz
Leja Caldarera
Smith Glick
Adams Morasca
Murillo Malet
Emily Whobrey
Jennifer Amigon
Chavez Briddick
James Butt
Deepesh Chui
Chavez Briddick
Maria Marrier
Aika Inouye
Claire Tollner
Smith Glick
Nicolas Iturbide
Stacey Maclead
Mayumi Kolmetz
Ivar Paprocki
Clifford Rim
Johnson Sergi
Adams Morasca
Ashley Doe
Morrow Ruta
Jeanfrancois Venere
Mayumi Kolmetz
Aruna Figeroa
Alejandro Perin
Mujtaba Nicka
Claire Tollner
Ashley Doe
Alejandro Perin
Faith Gillian
Izzy Garufi
Nicolas Iturbide
Antonio Caudy
Deepesh Chui
Isabel Bowley
David Darakjy
IdCountryDate
1000Japan2021-09-30
1001Canada2021-09-27
1002India2021-10-12
1003France2021-10-13
1004India2021-10-04
1005Spain2021-10-10
1006Germany2021-10-10
1007Canada2021-10-09
1008India2021-10-14
1009Argentina2021-10-18
1010Russia2021-09-30
1011Spain2021-10-13
1012Brazil2021-10-12
1013Italy2021-10-03
1014Germany2021-09-21
1015India2021-10-15
1016Argentina2021-09-30
1017Japan2021-10-02
1018Canada2021-10-13
1019Australia2021-10-04
1020Russia2021-10-05
1021Brazil2021-10-16
1022Australia2021-10-19
1023Italy2021-10-08
1024Italy2021-09-28
1025United Kingdom2021-10-16
1026Brazil2021-09-28
1027Russia2021-09-25
1028Spain2021-09-24
1029Australia2021-10-17
1030Spain2021-10-20
1031Australia2021-10-10
1032India2021-10-07
1033Australia2021-10-07
1034Argentina2021-10-17
1035Germany2021-09-27
1036Germany2021-10-08
1037Australia2021-09-25
1038Russia2021-09-22
1039United Kingdom2021-10-09
1040United Kingdom2021-09-30
1041Australia2021-09-22
1042Brazil2021-10-19
1043France2021-10-03
1044Argentina2021-09-21
1045Australia2021-09-24
1046India2021-09-24
1047Japan2021-10-18
1048Canada2021-09-22
1049Spain2021-09-26
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: