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 C MacleadRussiaIvan Magalhaes NEW
Arvin Y MorascaBrazilAmy Elsner RENEWAL
Faith E WaycottUnited KingdomStephen Shaw QUALIFIED
Aruna I FlosiAustraliaAmy Elsner PROPOSAL
Jones Y VocelkaFranceElwin Sharvill RENEWAL
Leon T RulapaughBrazilXuxue Feng NEW
Mujtaba D SlusarskiBrazilStephen Shaw QUALIFIED
Nicolas D OldroydJapanIvan Magalhaes UNQUALIFIED
Darci S SergiFranceAmy Elsner UNQUALIFIED
Chavez T FigeroaSpainElwin Sharvill UNQUALIFIED
Maria C OldroydJapanOnyama Limba NEW
Greenwood B WhobreyFranceAmy Elsner QUALIFIED
Salvatore G GlickUnited KingdomAmy Elsner RENEWAL
Wickens L StockhamItalyAsiya Javayant RENEWAL
Antonio I GarufiCanadaXuxue Feng QUALIFIED
Cody H FigeroaAustraliaAsiya Javayant NEGOTIATION
Adams I SchemmerSpainBernardo Dominic QUALIFIED
Octavia A KolmetzGermanyOnyama Limba NEGOTIATION
Jones V TollnerItalyAsiya Javayant UNQUALIFIED
Darci J DilliardFranceAsiya Javayant UNQUALIFIED
Stacey M VocelkaJapanIvan Magalhaes NEW
Smith G CaldareraJapanIvan Magalhaes UNQUALIFIED
Kaitlin J NickaItalyAsiya Javayant PROPOSAL
Jeanfrancois H MaletGermanyOnyama Limba RENEWAL
Faith V SlusarskiItalyIvan Magalhaes NEGOTIATION
Morrow J GarufiCanadaElwin Sharvill NEW
Salvatore Q WhobreyIndiaOnyama Limba PROPOSAL
Claire U SchemmerBrazilIvan Magalhaes PROPOSAL
Maisha J GarufiBrazilBernardo Dominic PROPOSAL
Izzy A DilliardUnited KingdomElwin Sharvill PROPOSAL
Aika U GarufiIndiaAmy Elsner QUALIFIED
Mayumi B VenereRussiaAnna Fali NEGOTIATION
Leon F MaletItalyXuxue Feng RENEWAL
Jennifer E NickaFranceElwin Sharvill UNQUALIFIED
Izzy S GarufiIndiaAnna Fali NEW
Kadeem H OldroydBrazilXuxue Feng UNQUALIFIED
Mujtaba U RulapaughIndiaXuxue Feng PROPOSAL
Tony W IturbideGermanyOnyama Limba QUALIFIED
Alejandro C RutaIndiaAnna Fali UNQUALIFIED
Jeanfrancois P IturbideItalyXuxue Feng UNQUALIFIED
Morrow Q MaletRussiaAsiya Javayant UNQUALIFIED
Costa U GlickUnited KingdomBernardo Dominic RENEWAL
Juan A MaletIndiaXuxue Feng NEW
Adams N ShinkoUnited KingdomElwin Sharvill UNQUALIFIED
Jennifer O InouyeJapanOnyama Limba UNQUALIFIED
Mayumi Y MacleadFranceBernardo Dominic NEGOTIATION
Clifford K CampainIndiaAnna Fali UNQUALIFIED
Aditya L SergiBrazilAsiya Javayant NEGOTIATION
Kadeem H ShinkoRussiaIvan Magalhaes NEGOTIATION
Aruna E KolmetzArgentinaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood F VenereSpainIvan Magalhaes NEW
Johnson A MacleadBrazilStephen Shaw QUALIFIED
Morrow U NestleAustraliaAnna Fali QUALIFIED
Misaki K KolmetzSpainIvan Magalhaes RENEWAL
Adams N WieserArgentinaIvan Magalhaes UNQUALIFIED
Maisha K SchemmerCanadaIoni Bowcher RENEWAL
Kadeem R WhobreyCanadaBernardo Dominic UNQUALIFIED
Izzy K WaycottAustraliaStephen Shaw QUALIFIED
Morrow H DoeArgentinaBernardo Dominic RENEWAL
Tony D InouyeBrazilOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore P WieserIndia2025-07-13Dorl, James J Esq RENEWAL71Ioni Bowcher
1001Murillo Y WaycottJapan2025-07-03Dorl, James J Esq NEGOTIATION12Anna Fali
1002Morrow Z SlusarskiFrance2025-07-24Chapman, Ross E Esq RENEWAL63Stephen Shaw
1003James P BowleySpain2025-07-03Chanay, Jeffrey A Esq PROPOSAL80Xuxue Feng
1004Aruna B BowleyIndia2025-07-23Dorl, James J Esq UNQUALIFIED98Stephen Shaw
1005Wickens D AmigonIndia2025-07-10Feltz Printing Service NEGOTIATION76Amy Elsner
1006Mayumi S FollerBrazil2025-07-29Rousseaux, Michael Esq PROPOSAL38Asiya Javayant
1007Aditya V GillianSpain2025-07-24Commercial Press NEGOTIATION66Stephen Shaw
1008Smith Q KolmetzGermany2025-07-27Chemel, James L Cpa NEW45Ivan Magalhaes
1009Nicolas X MaletBrazil2025-08-01Commercial Press NEW68Elwin Sharvill
1010Silvio S CaudyFrance2025-07-11Buckley Miller Wright NEW5Elwin Sharvill
1011Aditya Q RoysterArgentina2025-07-05Chemel, James L Cpa NEW79Ioni Bowcher
1012Emily O RulapaughBrazil2025-07-26Rangoni Of Florence QUALIFIED93Xuxue Feng
1013Johnson U StockhamRussia2025-07-07Chanay, Jeffrey A Esq NEGOTIATION59Onyama Limba
1014Ashley S PerinArgentina2025-07-10Dorl, James J Esq PROPOSAL3Bernardo Dominic
1015Jeanfrancois W GillianIndia2025-07-09Chemel, James L Cpa UNQUALIFIED55Amy Elsner
1016Aika L FigeroaAustralia2025-07-20Chemel, James L Cpa NEW76Anna Fali
1017Juan F MaletSpain2025-07-16Truhlar And Truhlar Attys PROPOSAL94Asiya Javayant
1018Silvio R IturbideRussia2025-07-16Feltz Printing Service PROPOSAL72Ioni Bowcher
1019Costa Y InouyeUnited Kingdom2025-07-05Rousseaux, Michael Esq RENEWAL50Onyama Limba
1020Claire M RulapaughCanada2025-07-14Feltz Printing Service RENEWAL49Stephen Shaw
1021Chavez J MarrierGermany2025-07-28Truhlar And Truhlar Attys PROPOSAL32Onyama Limba
1022Jennifer Y KolmetzRussia2025-07-15Feltz Printing Service UNQUALIFIED22Ivan Magalhaes
1023Jeanfrancois U GillianGermany2025-07-06Dorl, James J Esq NEGOTIATION13Anna Fali
1024Aika E NestleItaly2025-07-07Chapman, Ross E Esq PROPOSAL8Onyama Limba
1025Darci Z DarakjyBrazil2025-07-29King, Christopher A Esq QUALIFIED33Stephen Shaw
1026Nicolas O OldroydIndia2025-08-01Buckley Miller Wright NEGOTIATION9Xuxue Feng
1027Morrow Q AlbaresSpain2025-07-20Chemel, James L Cpa NEW87Xuxue Feng
1028David Z FlosiUnited Kingdom2025-07-20Chemel, James L Cpa NEW52Amy Elsner
1029Jeanfrancois I StensethSpain2025-07-07Chapman, Ross E Esq NEGOTIATION81Onyama Limba
1030Wickens W MaletCanada2025-07-20Chapman, Ross E Esq RENEWAL55Xuxue Feng
1031Misaki C OldroydRussia2025-07-12Benton, John B Jr UNQUALIFIED5Amy Elsner
1032Alejandro I PaprockiJapan2025-07-25King, Christopher A Esq RENEWAL21Onyama Limba
1033James B CaldareraFrance2025-07-18Commercial Press NEGOTIATION10Amy Elsner
1034Kadeem Q FigeroaArgentina2025-07-26Buckley Miller Wright QUALIFIED38Ioni Bowcher
1035Greenwood W InouyeCanada2025-07-07Printing Dimensions PROPOSAL62Ioni Bowcher
1036Claire C PaprockiFrance2025-07-30Rousseaux, Michael Esq UNQUALIFIED62Onyama Limba
1037Jones V ChuiSpain2025-07-17Chanay, Jeffrey A Esq PROPOSAL50Amy Elsner
1038Darci Z SchemmerRussia2025-07-27Commercial Press NEW1Ivan Magalhaes
1039Maria J RulapaughUnited Kingdom2025-07-08Printing Dimensions UNQUALIFIED52Ioni Bowcher
1040Sinclair Z StensethGermany2025-07-21Morlong Associates RENEWAL83Amy Elsner
1041Leja L CaudyIndia2025-07-10Feltz Printing Service NEGOTIATION46Amy Elsner
1042Jennifer K DoeIndia2025-08-01Morlong Associates QUALIFIED18Onyama Limba
1043Leon S GauchoSpain2025-07-26Dorl, James J Esq UNQUALIFIED71Elwin Sharvill
1044Jeanfrancois G KolmetzArgentina2025-07-18Dorl, James J Esq NEGOTIATION5Anna Fali
1045Wickens R DarakjyBrazil2025-07-30Rangoni Of Florence QUALIFIED36Stephen Shaw
1046Munro P PoquetteIndia2025-07-15Chemel, James L Cpa PROPOSAL26Asiya Javayant
1047Salvatore A CaudyUnited Kingdom2025-08-01Rangoni Of Florence NEW9Elwin Sharvill
1048Kadeem X MacleadBrazil2025-07-19Feiner Bros NEGOTIATION61Ioni Bowcher
1049Clifford S KuskoCanada2025-07-28Feltz Printing Service UNQUALIFIED15Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jefferson H OldroydBrazilAnna Fali RENEWAL
Munro Q RulapaughIndiaIvan Magalhaes RENEWAL
Sinclair L SergiSpainStephen Shaw NEGOTIATION
Greenwood A BologniaJapanAsiya Javayant QUALIFIED
Julie J BologniaItalyElwin Sharvill UNQUALIFIED
Kaitlin Q SaylorsIndiaBernardo Dominic RENEWAL
Aruna D GauchoFranceXuxue Feng RENEWAL
Aika O RoysterIndiaStephen Shaw RENEWAL
Jeanfrancois Y FerenczJapanElwin Sharvill UNQUALIFIED
Julie X StensethBrazilAnna Fali NEW
Deepesh S WaycottBrazilBernardo Dominic NEGOTIATION
Leon X MarrierGermanyOnyama Limba NEGOTIATION
Kadeem N WaycottRussiaBernardo Dominic PROPOSAL
Kadeem B OstroskySpainOnyama Limba QUALIFIED
Juan K OldroydIndiaBernardo Dominic UNQUALIFIED
Ashley G FlosiCanadaIoni Bowcher NEGOTIATION
Francesco B TollnerFranceAnna Fali NEGOTIATION
Maria N TollnerRussiaAmy Elsner UNQUALIFIED
Julie Q NestleJapanAsiya Javayant UNQUALIFIED
Isabel Q CaudyCanadaIoni Bowcher UNQUALIFIED
Darci C PaprockiUnited KingdomBernardo Dominic NEGOTIATION
Leja X RimFranceXuxue Feng UNQUALIFIED
Juan P PoquetteItalyAnna Fali NEW
Nicolas K SergiCanadaXuxue Feng PROPOSAL
Greenwood E IturbideItalyIvan Magalhaes PROPOSAL
Costa W FigeroaSpainOnyama Limba PROPOSAL
Emily K StockhamRussiaAnna Fali RENEWAL
Darci K DarakjyIndiaElwin Sharvill UNQUALIFIED
Rodrigues I ButtFranceElwin Sharvill QUALIFIED
Adams D MaletItalyAmy Elsner NEGOTIATION
Aruna G SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Mujtaba T AlbaresIndiaAnna Fali QUALIFIED
Leon W FigeroaFranceOnyama Limba UNQUALIFIED
Julie K DilliardJapanIoni Bowcher QUALIFIED
Emily L SaylorsItalyAsiya Javayant NEGOTIATION
Aruna B ChuiFranceAnna Fali NEGOTIATION
Francesco Z WaycottUnited KingdomIoni Bowcher RENEWAL
Ivar X AmigonSpainStephen Shaw NEGOTIATION
Jennifer Z StensethItalyStephen Shaw QUALIFIED
Wickens V OldroydGermanyIoni Bowcher QUALIFIED
Tony Z CaldareraJapanAsiya Javayant UNQUALIFIED
Leon F VocelkaRussiaIvan Magalhaes UNQUALIFIED
Rodrigues F TollnerSpainAnna Fali UNQUALIFIED
Ashley Q DilliardCanadaBernardo Dominic PROPOSAL
Johnson E SchemmerItalyElwin Sharvill NEGOTIATION
Jefferson G PaprockiJapanXuxue Feng UNQUALIFIED
Isabel S VocelkaFranceElwin Sharvill PROPOSAL
Mujtaba Z WieserArgentinaAmy Elsner NEW
Jeanfrancois G NickaJapanElwin Sharvill PROPOSAL
Aruna Q GlickJapanStephen Shaw UNQUALIFIED
Frozen Columns
Name
Morrow D Butt
Ashley I Paprocki
David Z Darakjy
Smith U Figeroa
Mujtaba M Kolmetz
Murillo X Gillian
Juan S Ruta
David J Gillian
Rodrigues F Foller
Wickens W Malet
Ricardo P Perin
Greenwood K Flosi
Johnson J Bowley
Francesco L Malet
Jeanfrancois Q Sergi
Isabel J Briddick
Ivar K Rulapaugh
Arvin H Waycott
Kaitlin U Marrier
Jones X Malet
David H Venere
Smith H Ostrosky
Mujtaba F Oldroyd
Aruna L Gillian
Faith L Waycott
Isabel M Briddick
Darci I Rulapaugh
Mayumi X Inouye
Adams N Gillian
Aruna J Darakjy
Ashley Q Wieser
Jones B Saylors
Izzy R Rulapaugh
Izzy C Stenseth
Jones A Caldarera
Isabel O Perin
Munro O Glick
Juan W Gillian
Leon V Ostrosky
Cody N Malet
Faith K Rim
Julie W Gillian
Claire X Venere
Ivar Y Inouye
Johnson C Kusko
Octavia G Slusarski
Wickens E Caudy
Adams N Chui
Murillo F Marrier
David V Wieser
IdCountryDate
1000Australia2025-07-08
1001Germany2025-07-23
1002Germany2025-07-04
1003Canada2025-07-03
1004Australia2025-07-26
1005Italy2025-07-09
1006Australia2025-07-09
1007Canada2025-07-28
1008United Kingdom2025-07-30
1009France2025-07-12
1010Australia2025-07-04
1011Italy2025-07-07
1012Russia2025-07-13
1013Australia2025-07-19
1014Brazil2025-07-05
1015Italy2025-07-23
1016Argentina2025-07-30
1017Spain2025-07-27
1018Spain2025-07-06
1019Canada2025-07-09
1020France2025-07-22
1021Germany2025-07-27
1022Argentina2025-07-06
1023India2025-07-08
1024Argentina2025-07-26
1025France2025-07-23
1026France2025-08-01
1027France2025-07-06
1028Argentina2025-07-10
1029India2025-07-23
1030Japan2025-07-20
1031United Kingdom2025-07-05
1032Brazil2025-07-22
1033Italy2025-07-30
1034Canada2025-07-22
1035Argentina2025-07-24
1036Germany2025-07-30
1037Russia2025-07-21
1038Argentina2025-07-04
1039Argentina2025-07-03
1040United Kingdom2025-07-12
1041United Kingdom2025-08-01
1042Brazil2025-07-03
1043Italy2025-07-15
1044India2025-07-28
1045Germany2025-07-15
1046Italy2025-07-09
1047India2025-07-19
1048Spain2025-07-24
1049Argentina2025-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow Y PaprockiCanadaIoni Bowcher RENEWAL
Jones M ShinkoBrazilOnyama Limba NEW
Emily C AmigonIndiaIvan Magalhaes PROPOSAL
Morrow A StensethSpainBernardo Dominic PROPOSAL
Wickens P MorascaFranceOnyama Limba NEW
Ashley O RutaUnited KingdomXuxue Feng PROPOSAL
Jones S WieserFranceXuxue Feng NEGOTIATION
Faith A SlusarskiUnited KingdomXuxue Feng NEW
Clifford L MaletRussiaAnna Fali NEW
Ricardo Y FollerSpainIoni Bowcher QUALIFIED
Darci H OldroydRussiaAsiya Javayant PROPOSAL
Juan A CampainArgentinaAnna Fali PROPOSAL
Jeanfrancois Q GlickAustraliaIvan Magalhaes UNQUALIFIED
Alejandro V PoquetteUnited KingdomIoni Bowcher QUALIFIED
Aika C AmigonArgentinaStephen Shaw QUALIFIED
Mayumi F AlbaresFranceIoni Bowcher NEGOTIATION
Ashley H CampainAustraliaOnyama Limba NEW
Ricardo H InouyeBrazilElwin Sharvill NEW
Darci U MorascaSpainIvan Magalhaes UNQUALIFIED
Isabel Z NestleAustraliaOnyama Limba RENEWAL
Maisha X MarrierGermanyElwin Sharvill NEGOTIATION
Faith Z KuskoIndiaOnyama Limba NEW
Juan A OldroydIndiaElwin Sharvill PROPOSAL
Leja D WieserRussiaOnyama Limba QUALIFIED
Stacey Y VocelkaArgentinaIvan Magalhaes UNQUALIFIED
Francesco L MarrierItalyAsiya Javayant NEGOTIATION
Sinclair A PaprockiGermanyIoni Bowcher NEW
Jones A InouyeIndiaStephen Shaw NEW
Isabel M StockhamRussiaIoni Bowcher NEW
Juan Z ButtCanadaElwin Sharvill PROPOSAL
Greenwood Z GauchoCanadaIvan Magalhaes NEGOTIATION
Claire O RimBrazilElwin Sharvill NEGOTIATION
Jefferson M MarrierGermanyIvan Magalhaes NEGOTIATION
Clifford F MaletBrazilStephen Shaw NEGOTIATION
Jones G MacleadRussiaIvan Magalhaes PROPOSAL
Sinclair M FigeroaGermanyXuxue Feng QUALIFIED
Jones W GarufiJapanIoni Bowcher PROPOSAL
Ivar Z PaprockiGermanyOnyama Limba RENEWAL
Nicolas A RulapaughJapanXuxue Feng NEW
Ivar X OstroskyFranceAmy Elsner RENEWAL

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