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
Sinclair WaycottArgentinaAnna Fali PROPOSAL
Rodrigues CampainCanadaOnyama Limba NEW
Clifford RimRussiaBernardo Dominic NEGOTIATION
Misaki RoysterFranceElwin Sharvill UNQUALIFIED
Darci PoquetteJapanOnyama Limba RENEWAL
Darci PoquetteSpainAnna Fali UNQUALIFIED
Smith GlickIndiaAnna Fali QUALIFIED
Wickens NestleJapanIvan Magalhaes QUALIFIED
Claire TollnerFranceElwin Sharvill RENEWAL
James ButtCanadaOnyama Limba NEW
Smith GlickCanadaStephen Shaw NEW
Maria MarrierItalyIoni Bowcher NEW
Rodrigues CampainBrazilStephen Shaw RENEWAL
Smith GlickGermanyIoni Bowcher NEW
Kadeem FlosiJapanXuxue Feng NEW
Ricardo GauchoIndiaAnna Fali PROPOSAL
Deepesh ChuiCanadaAsiya Javayant PROPOSAL
Juan WieserCanadaAnna Fali NEGOTIATION
Aruna FigeroaBrazilXuxue Feng RENEWAL
Tony FollerBrazilOnyama Limba QUALIFIED
Kaitlin OstroskyUnited KingdomIvan Magalhaes UNQUALIFIED
Nicolas IturbideBrazilBernardo Dominic QUALIFIED
Leon OldroydSpainIoni Bowcher UNQUALIFIED
Jennifer AmigonCanadaAnna Fali RENEWAL
Ashley DoeIndiaIoni Bowcher PROPOSAL
Claire TollnerSpainBernardo Dominic NEW
Francesco ShinkoCanadaAnna Fali UNQUALIFIED
Misaki RoysterArgentinaBernardo Dominic NEGOTIATION
Ashley DoeJapanBernardo Dominic UNQUALIFIED
Jennifer AmigonSpainAmy Elsner NEW
Ivar PaprockiIndiaStephen Shaw RENEWAL
Jones VocelkaBrazilAmy Elsner NEW
Adams MorascaIndiaElwin Sharvill NEW
Maisha RulapaughGermanyXuxue Feng NEGOTIATION
Kadeem FlosiBrazilIvan Magalhaes PROPOSAL
Tony FollerBrazilOnyama Limba PROPOSAL
Julie StensethRussiaElwin Sharvill NEGOTIATION
Mayumi KolmetzFranceXuxue Feng QUALIFIED
Alejandro PerinUnited KingdomAnna Fali NEW
Aruna FigeroaArgentinaXuxue Feng NEGOTIATION
Misaki RoysterBrazilXuxue Feng NEGOTIATION
Morrow RutaBrazilStephen Shaw UNQUALIFIED
Rodrigues CampainArgentinaIoni Bowcher UNQUALIFIED
Juan WieserAustraliaAsiya Javayant UNQUALIFIED
Ashley DoeAustraliaAmy Elsner PROPOSAL
Silvio SlusarskiGermanyXuxue Feng NEW
Arvin AlbaresArgentinaBernardo Dominic QUALIFIED
Murillo MaletAustraliaAmy Elsner RENEWAL
Kaitlin OstroskySpainOnyama Limba RENEWAL
Emily WhobreyUnited KingdomOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Silvio SlusarskiAustraliaElwin Sharvill NEW
Clifford RimSpainElwin Sharvill RENEWAL
Faith GillianBrazilIoni Bowcher UNQUALIFIED
Emily WhobreyAustraliaAmy Elsner QUALIFIED
Morrow RutaCanadaAmy Elsner RENEWAL
Octavia MaletGermanyBernardo Dominic QUALIFIED
Arvin AlbaresCanadaStephen Shaw UNQUALIFIED
Aditya KuskoFranceElwin Sharvill UNQUALIFIED
Murillo MaletSpainXuxue Feng PROPOSAL
Mayumi KolmetzSpainAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood BologniaBrazil2021-04-15Commercial Press NEGOTIATION47Xuxue Feng
1001Stacey MacleadUnited Kingdom2021-05-09Feltz Printing Service NEGOTIATION0Bernardo Dominic
1002Sinclair WaycottFrance2021-04-21Commercial Press RENEWAL20Bernardo Dominic
1003Maisha RulapaughGermany2021-05-08Chanay, Jeffrey A Esq UNQUALIFIED90Onyama Limba
1004Clifford RimGermany2021-04-14Rousseaux, Michael Esq NEGOTIATION75Elwin Sharvill
1005Murillo MaletItaly2021-05-11Chanay, Jeffrey A Esq NEGOTIATION36Elwin Sharvill
1006Costa DilliardRussia2021-04-16Feltz Printing Service QUALIFIED49Bernardo Dominic
1007Costa DilliardFrance2021-04-14Benton, John B Jr NEW54Stephen Shaw
1008Clifford RimSpain2021-04-28King, Christopher A Esq QUALIFIED74Bernardo Dominic
1009Murillo MaletJapan2021-05-09Chanay, Jeffrey A Esq NEGOTIATION14Ivan Magalhaes
1010Cody SaylorsSpain2021-04-23Morlong Associates NEGOTIATION36Ioni Bowcher
1011Misaki RoysterArgentina2021-05-03Printing Dimensions UNQUALIFIED12Bernardo Dominic
1012Ashley DoeGermany2021-05-03Commercial Press UNQUALIFIED92Onyama Limba
1013Aditya KuskoIndia2021-04-18Rangoni Of Florence QUALIFIED25Stephen Shaw
1014Alejandro PerinUnited Kingdom2021-04-22Rangoni Of Florence RENEWAL93Xuxue Feng
1015Octavia MaletGermany2021-05-08Buckley Miller Wright NEW20Bernardo Dominic
1016Alejandro PerinRussia2021-04-16Printing Dimensions NEW93Xuxue Feng
1017Stacey MacleadIndia2021-04-30Feiner Bros PROPOSAL34Elwin Sharvill
1018Leja CaldareraItaly2021-04-19King, Christopher A Esq QUALIFIED83Anna Fali
1019Deepesh ChuiIndia2021-05-05Morlong Associates NEGOTIATION38Xuxue Feng
1020Munro FerenczIndia2021-04-30Printing Dimensions NEW15Ioni Bowcher
1021Emily WhobreyItaly2021-04-23Printing Dimensions QUALIFIED89Bernardo Dominic
1022Alejandro PerinUnited Kingdom2021-05-06Truhlar And Truhlar Attys PROPOSAL74Elwin Sharvill
1023Cody SaylorsGermany2021-04-30Chanay, Jeffrey A Esq NEW4Ivan Magalhaes
1024Leja CaldareraUnited Kingdom2021-05-06Morlong Associates NEGOTIATION72Ioni Bowcher
1025Johnson SergiAustralia2021-05-10Chanay, Jeffrey A Esq PROPOSAL24Amy Elsner
1026Juan WieserSpain2021-05-10Commercial Press QUALIFIED13Stephen Shaw
1027Aditya KuskoBrazil2021-04-21Rangoni Of Florence PROPOSAL54Asiya Javayant
1028Chavez BriddickFrance2021-04-16Feiner Bros QUALIFIED34Bernardo Dominic
1029Mayumi KolmetzSpain2021-04-30Feltz Printing Service PROPOSAL54Anna Fali
1030Salvatore StockhamIndia2021-04-27King, Christopher A Esq PROPOSAL30Elwin Sharvill
1031Stacey MacleadItaly2021-04-21Truhlar And Truhlar Attys UNQUALIFIED56Bernardo Dominic
1032Juan WieserIndia2021-04-28Commercial Press NEW0Amy Elsner
1033Munro FerenczCanada2021-05-06Buckley Miller Wright QUALIFIED16Ivan Magalhaes
1034Izzy GarufiUnited Kingdom2021-04-20Dorl, James J Esq NEW84Bernardo Dominic
1035Aditya KuskoBrazil2021-04-21Feltz Printing Service PROPOSAL42Amy Elsner
1036Alejandro PerinFrance2021-05-11Morlong Associates QUALIFIED0Stephen Shaw
1037Mujtaba NickaSpain2021-05-02Rangoni Of Florence RENEWAL73Xuxue Feng
1038Juan WieserItaly2021-05-05Dorl, James J Esq QUALIFIED32Amy Elsner
1039Maisha RulapaughJapan2021-04-19Rousseaux, Michael Esq QUALIFIED34Elwin Sharvill
1040Munro FerenczGermany2021-05-06Buckley Miller Wright QUALIFIED60Ioni Bowcher
1041Deepesh ChuiSpain2021-05-04Truhlar And Truhlar Attys NEGOTIATION98Elwin Sharvill
1042Aruna FigeroaGermany2021-04-29Commercial Press NEGOTIATION38Ivan Magalhaes
1043Leon OldroydArgentina2021-05-13Morlong Associates QUALIFIED48Asiya Javayant
1044Mayumi KolmetzSpain2021-04-15Rangoni Of Florence UNQUALIFIED99Elwin Sharvill
1045Francesco ShinkoJapan2021-04-22Printing Dimensions RENEWAL95Asiya Javayant
1046Leja CaldareraSpain2021-05-01Dorl, James J Esq NEW5Ioni Bowcher
1047Costa DilliardUnited Kingdom2021-05-03Morlong Associates NEGOTIATION70Stephen Shaw
1048Juan WieserSpain2021-05-10Dorl, James J Esq NEGOTIATION7Bernardo Dominic
1049Rodrigues CampainBrazil2021-05-10King, Christopher A Esq QUALIFIED65Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Izzy GarufiAustraliaAsiya Javayant NEGOTIATION
Nicolas IturbideIndiaAnna Fali NEGOTIATION
Alejandro PerinArgentinaIoni Bowcher PROPOSAL
Morrow RutaGermanyBernardo Dominic UNQUALIFIED
Wickens NestleIndiaXuxue Feng RENEWAL
Mujtaba NickaIndiaAsiya Javayant PROPOSAL
Faith GillianJapanBernardo Dominic QUALIFIED
Silvio SlusarskiCanadaIoni Bowcher QUALIFIED
Johnson SergiFranceXuxue Feng QUALIFIED
Faith GillianUnited KingdomIoni Bowcher NEW
Adams MorascaArgentinaStephen Shaw NEW
Mayumi KolmetzBrazilBernardo Dominic UNQUALIFIED
Emily WhobreyArgentinaIvan Magalhaes NEW
Aruna FigeroaRussiaAnna Fali NEW
Nicolas IturbideJapanXuxue Feng NEGOTIATION
Juan WieserSpainAnna Fali PROPOSAL
Costa DilliardBrazilIvan Magalhaes PROPOSAL
Aika InouyeSpainXuxue Feng QUALIFIED
Kaitlin OstroskyBrazilIvan Magalhaes RENEWAL
David DarakjyArgentinaOnyama Limba RENEWAL
Rodrigues CampainCanadaXuxue Feng QUALIFIED
Clifford RimItalyBernardo Dominic RENEWAL
Clifford RimFranceAnna Fali PROPOSAL
Maisha RulapaughAustraliaIoni Bowcher QUALIFIED
Johnson SergiSpainElwin Sharvill NEW
James ButtAustraliaStephen Shaw QUALIFIED
Antonio CaudyUnited KingdomAnna Fali RENEWAL
Silvio SlusarskiCanadaAsiya Javayant UNQUALIFIED
Octavia MaletBrazilXuxue Feng PROPOSAL
Faith GillianJapanIoni Bowcher PROPOSAL
Claire TollnerUnited KingdomIvan Magalhaes PROPOSAL
Jones VocelkaAustraliaIoni Bowcher RENEWAL
Tony FollerBrazilBernardo Dominic NEGOTIATION
David DarakjyArgentinaElwin Sharvill PROPOSAL
Wickens NestleSpainOnyama Limba RENEWAL
Isabel BowleyRussiaElwin Sharvill NEGOTIATION
Jeanfrancois VenereGermanyOnyama Limba UNQUALIFIED
Claire TollnerRussiaAmy Elsner NEGOTIATION
Wickens NestleBrazilElwin Sharvill NEW
Ivar PaprockiUnited KingdomIoni Bowcher RENEWAL
Julie StensethSpainXuxue Feng UNQUALIFIED
Costa DilliardArgentinaXuxue Feng RENEWAL
Greenwood BologniaCanadaAmy Elsner RENEWAL
Jones VocelkaArgentinaElwin Sharvill UNQUALIFIED
Ricardo GauchoBrazilXuxue Feng QUALIFIED
Ricardo GauchoGermanyIoni Bowcher NEW
Mayumi KolmetzSpainAmy Elsner NEGOTIATION
Nicolas IturbideCanadaBernardo Dominic RENEWAL
Kadeem FlosiFranceStephen Shaw NEGOTIATION
Ivar PaprockiIndiaXuxue Feng NEW
Frozen Columns
Name
Antonio Caudy
Adams Morasca
Leja Caldarera
Julie Stenseth
Tony Foller
Claire Tollner
Smith Glick
Izzy Garufi
Nicolas Iturbide
Mujtaba Nicka
Emily Whobrey
Maria Marrier
Ivar Paprocki
Salvatore Stockham
Maria Marrier
Ivar Paprocki
Costa Dilliard
Cody Saylors
Aika Inouye
Sinclair Waycott
Faith Gillian
Silvio Slusarski
Mayumi Kolmetz
Clifford Rim
Stacey Maclead
Maria Marrier
Salvatore Stockham
Misaki Royster
Greenwood Bolognia
Wickens Nestle
Morrow Ruta
Costa Dilliard
Johnson Sergi
Alejandro Perin
Rodrigues Campain
Leja Caldarera
Aika Inouye
Rodrigues Campain
Misaki Royster
Julie Stenseth
Adams Morasca
Johnson Sergi
Emily Whobrey
Aditya Kusko
Darci Poquette
Ivar Paprocki
Ivar Paprocki
Ricardo Gaucho
Salvatore Stockham
Johnson Sergi
IdCountryDate
1000Brazil2021-04-14
1001Spain2021-05-07
1002Spain2021-05-11
1003Canada2021-04-16
1004United Kingdom2021-04-21
1005Japan2021-04-17
1006Italy2021-04-18
1007Brazil2021-04-20
1008Brazil2021-04-22
1009United Kingdom2021-04-17
1010Australia2021-04-21
1011Argentina2021-05-04
1012Canada2021-04-24
1013Argentina2021-05-13
1014Italy2021-05-07
1015Japan2021-05-09
1016Japan2021-05-05
1017United Kingdom2021-05-05
1018France2021-05-11
1019Canada2021-05-02
1020Russia2021-04-27
1021Canada2021-05-12
1022Russia2021-05-04
1023Japan2021-04-17
1024Canada2021-04-22
1025Russia2021-05-03
1026Russia2021-04-23
1027Spain2021-05-04
1028India2021-04-20
1029Argentina2021-04-24
1030Germany2021-04-27
1031Spain2021-04-27
1032Russia2021-04-17
1033Spain2021-05-06
1034Russia2021-04-19
1035Spain2021-05-06
1036Russia2021-05-04
1037India2021-04-19
1038Australia2021-05-01
1039Italy2021-04-21
1040Australia2021-04-29
1041Australia2021-05-09
1042Germany2021-05-05
1043Spain2021-04-16
1044Germany2021-04-16
1045Brazil2021-04-29
1046Canada2021-04-23
1047United Kingdom2021-05-06
1048Germany2021-04-18
1049Australia2021-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James ButtBrazilElwin Sharvill RENEWAL
Sinclair WaycottSpainAsiya Javayant PROPOSAL
Silvio SlusarskiUnited KingdomAmy Elsner RENEWAL
Costa DilliardGermanyAmy Elsner UNQUALIFIED
Morrow RutaBrazilElwin Sharvill NEW
Nicolas IturbideIndiaOnyama Limba QUALIFIED
Antonio CaudyCanadaAsiya Javayant NEGOTIATION
Ivar PaprockiArgentinaAsiya Javayant PROPOSAL
Deepesh ChuiJapanAnna Fali PROPOSAL
Darci PoquetteIndiaOnyama Limba PROPOSAL
Misaki RoysterUnited KingdomElwin Sharvill NEW
Johnson SergiIndiaAsiya Javayant QUALIFIED
Jefferson SchemmerFranceIoni Bowcher UNQUALIFIED
Sinclair WaycottItalyXuxue Feng PROPOSAL
Izzy GarufiFranceAmy Elsner QUALIFIED
Smith GlickArgentinaBernardo Dominic QUALIFIED
Deepesh ChuiFranceStephen Shaw UNQUALIFIED
Leon OldroydIndiaXuxue Feng NEW
Misaki RoysterJapanIoni Bowcher NEW
David DarakjyItalyElwin Sharvill PROPOSAL
Wickens NestleJapanIoni Bowcher NEGOTIATION
Kaitlin OstroskyAustraliaBernardo Dominic UNQUALIFIED
Misaki RoysterCanadaElwin Sharvill RENEWAL
Aika InouyeFranceElwin Sharvill PROPOSAL
Maisha RulapaughItalyAnna Fali UNQUALIFIED
Salvatore StockhamGermanyAmy Elsner QUALIFIED
Murillo MaletJapanElwin Sharvill QUALIFIED
Jennifer AmigonJapanAsiya Javayant NEGOTIATION
Jennifer AmigonBrazilAnna Fali NEW
Darci PoquetteFranceAmy Elsner PROPOSAL
Emily WhobreyGermanyBernardo Dominic UNQUALIFIED
Maria MarrierJapanAmy Elsner NEGOTIATION
Ricardo GauchoAustraliaStephen Shaw NEGOTIATION
Ashley DoeCanadaXuxue Feng NEGOTIATION
Mujtaba NickaGermanyAnna Fali QUALIFIED
Francesco ShinkoRussiaAnna Fali NEGOTIATION
Mujtaba NickaGermanyIoni Bowcher NEGOTIATION
Murillo MaletAustraliaIvan Magalhaes NEGOTIATION
Ashley DoeSpainAnna Fali QUALIFIED
Smith GlickAustraliaOnyama Limba RENEWAL

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