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
Aditya J TollnerRussiaAsiya Javayant QUALIFIED
Mayumi Z KuskoUnited KingdomBernardo Dominic UNQUALIFIED
Rodrigues P ShinkoArgentinaElwin Sharvill NEGOTIATION
Misaki S MorascaItalyXuxue Feng NEGOTIATION
Murillo A ButtFranceAsiya Javayant PROPOSAL
Arvin R SaylorsCanadaElwin Sharvill QUALIFIED
Isabel J GillianGermanyXuxue Feng NEW
Adams V VenereIndiaIvan Magalhaes UNQUALIFIED
Silvio Q ButtJapanElwin Sharvill UNQUALIFIED
Deepesh T GlickRussiaIoni Bowcher NEW
Mujtaba G PoquetteItalyElwin Sharvill UNQUALIFIED
Morrow R WieserIndiaIoni Bowcher QUALIFIED
Aika O AlbaresAustraliaXuxue Feng UNQUALIFIED
Stacey A FlosiUnited KingdomAmy Elsner UNQUALIFIED
Adams Q GarufiArgentinaBernardo Dominic UNQUALIFIED
Jennifer S WieserJapanIoni Bowcher QUALIFIED
Silvio R BowleyJapanAsiya Javayant NEGOTIATION
Chavez A RutaBrazilBernardo Dominic QUALIFIED
Adams K GauchoItalyOnyama Limba NEGOTIATION
Adams Q DoeBrazilBernardo Dominic RENEWAL
Wickens S GillianRussiaIvan Magalhaes NEW
Maria S MaletGermanyStephen Shaw UNQUALIFIED
Sinclair N GillianGermanyIvan Magalhaes UNQUALIFIED
Claire G MacleadBrazilOnyama Limba NEGOTIATION
Jones J MaletIndiaAmy Elsner NEW
Maisha J IturbideFranceBernardo Dominic RENEWAL
Misaki J FollerJapanOnyama Limba NEGOTIATION
David H KolmetzIndiaAnna Fali PROPOSAL
Kaitlin R FerenczCanadaXuxue Feng RENEWAL
Juan X CampainCanadaXuxue Feng QUALIFIED
Juan C VocelkaJapanAsiya Javayant NEGOTIATION
Francesco N SaylorsItalyIvan Magalhaes PROPOSAL
Adams O DoeArgentinaAnna Fali RENEWAL
Murillo D StensethIndiaIoni Bowcher NEGOTIATION
Izzy S SlusarskiUnited KingdomAnna Fali NEGOTIATION
Nicolas S SlusarskiItalyXuxue Feng RENEWAL
Adams N CampainGermanyOnyama Limba QUALIFIED
Salvatore E IturbideSpainBernardo Dominic RENEWAL
Jeanfrancois U CaudyItalyOnyama Limba UNQUALIFIED
Aditya R InouyeArgentinaAmy Elsner RENEWAL
Leon G InouyeCanadaAsiya Javayant UNQUALIFIED
Wickens E BowleyCanadaStephen Shaw UNQUALIFIED
Clifford Q GarufiSpainAmy Elsner QUALIFIED
Isabel W VenereAustraliaElwin Sharvill NEW
Salvatore A RulapaughGermanyAsiya Javayant UNQUALIFIED
Nicolas N DarakjyArgentinaAmy Elsner RENEWAL
Silvio S BologniaGermanyStephen Shaw PROPOSAL
Salvatore U BowleyItalyAsiya Javayant RENEWAL
Mujtaba P PoquetteUnited KingdomStephen Shaw UNQUALIFIED
Mujtaba D OstroskyRussiaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
David V StockhamItalyAnna Fali NEGOTIATION
Deepesh K MaletUnited KingdomAnna Fali UNQUALIFIED
Munro W RimRussiaAmy Elsner NEGOTIATION
Clifford N BowleyFranceXuxue Feng QUALIFIED
Aditya C SchemmerAustraliaBernardo Dominic NEW
Clifford J FollerItalyAmy Elsner QUALIFIED
Smith G WieserArgentinaOnyama Limba NEGOTIATION
Juan V MarrierJapanStephen Shaw QUALIFIED
Faith Q BologniaBrazilAmy Elsner QUALIFIED
Julie S RulapaughJapanIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria K DarakjyArgentina2026-03-12Dorl, James J Esq NEGOTIATION94Bernardo Dominic
1001Francesco W StockhamItaly2026-03-08Printing Dimensions UNQUALIFIED59Onyama Limba
1002Julie R GarufiGermany2026-03-09Commercial Press UNQUALIFIED72Ioni Bowcher
1003Arvin O BowleyCanada2026-03-09Rangoni Of Florence UNQUALIFIED61Bernardo Dominic
1004Stacey K StensethItaly2026-02-26Chemel, James L Cpa QUALIFIED67Ioni Bowcher
1005Maria C DarakjyUnited Kingdom2026-03-04Printing Dimensions UNQUALIFIED15Amy Elsner
1006Claire J OstroskyBrazil2026-03-20King, Christopher A Esq QUALIFIED53Xuxue Feng
1007Cody X DilliardJapan2026-03-17Chapman, Ross E Esq QUALIFIED38Amy Elsner
1008Tony S RutaGermany2026-02-27Dorl, James J Esq NEGOTIATION11Asiya Javayant
1009Mujtaba Z PerinBrazil2026-03-11Chemel, James L Cpa NEGOTIATION77Onyama Limba
1010Aika P BriddickRussia2026-03-19Feltz Printing Service NEGOTIATION16Stephen Shaw
1011James E NestleUnited Kingdom2026-03-13Chanay, Jeffrey A Esq RENEWAL12Anna Fali
1012Sinclair P GarufiItaly2026-03-15Rousseaux, Michael Esq RENEWAL61Bernardo Dominic
1013Francesco V WhobreyUnited Kingdom2026-03-13Rousseaux, Michael Esq NEW8Stephen Shaw
1014Kadeem G KolmetzBrazil2026-02-22Dorl, James J Esq RENEWAL26Onyama Limba
1015Jennifer D ButtIndia2026-02-23Rousseaux, Michael Esq NEGOTIATION40Anna Fali
1016Octavia C SchemmerSpain2026-03-20Commercial Press PROPOSAL62Ioni Bowcher
1017Silvio O MaletFrance2026-02-23Chemel, James L Cpa NEW14Onyama Limba
1018Smith Z StensethBrazil2026-03-04Rangoni Of Florence PROPOSAL12Stephen Shaw
1019Ashley R MorascaJapan2026-03-11Buckley Miller Wright UNQUALIFIED37Bernardo Dominic
1020Ivar L GarufiRussia2026-03-02Benton, John B Jr QUALIFIED23Amy Elsner
1021Mayumi Y IturbideJapan2026-03-21Rangoni Of Florence UNQUALIFIED63Ioni Bowcher
1022Isabel U RoysterSpain2026-03-07Morlong Associates PROPOSAL16Onyama Limba
1023Leon Y SlusarskiUnited Kingdom2026-03-11King, Christopher A Esq QUALIFIED69Elwin Sharvill
1024Wickens S BriddickGermany2026-02-23Chapman, Ross E Esq UNQUALIFIED54Xuxue Feng
1025Chavez K FlosiArgentina2026-03-08Printing Dimensions NEW57Elwin Sharvill
1026Silvio B MorascaUnited Kingdom2026-03-08Printing Dimensions QUALIFIED44Xuxue Feng
1027Jennifer M DarakjyUnited Kingdom2026-03-17Commercial Press QUALIFIED55Ioni Bowcher
1028Leja T GillianFrance2026-03-13Benton, John B Jr UNQUALIFIED22Asiya Javayant
1029Aditya F VocelkaCanada2026-02-27King, Christopher A Esq PROPOSAL67Amy Elsner
1030Salvatore D BologniaSpain2026-02-27Chapman, Ross E Esq PROPOSAL11Anna Fali
1031Faith G DarakjyBrazil2026-03-03Feiner Bros UNQUALIFIED64Ioni Bowcher
1032Mujtaba T FigeroaJapan2026-03-08Rangoni Of Florence PROPOSAL87Stephen Shaw
1033Rodrigues P AmigonIndia2026-03-18Chapman, Ross E Esq UNQUALIFIED53Asiya Javayant
1034Chavez P WaycottRussia2026-02-26Chemel, James L Cpa NEW4Stephen Shaw
1035Smith P StensethSpain2026-03-03Chapman, Ross E Esq PROPOSAL10Amy Elsner
1036Wickens D SaylorsIndia2026-02-27Feltz Printing Service NEW83Amy Elsner
1037Jennifer L IturbideArgentina2026-03-21Chapman, Ross E Esq PROPOSAL91Asiya Javayant
1038Tony O AlbaresCanada2026-02-28Chanay, Jeffrey A Esq QUALIFIED23Ioni Bowcher
1039Smith X StockhamItaly2026-02-27Truhlar And Truhlar Attys QUALIFIED54Amy Elsner
1040Leon M AlbaresItaly2026-02-22Rangoni Of Florence QUALIFIED92Bernardo Dominic
1041Ivar W GarufiItaly2026-03-16Chapman, Ross E Esq UNQUALIFIED87Anna Fali
1042Jones L MaletBrazil2026-03-22Printing Dimensions RENEWAL17Stephen Shaw
1043Adams U CaudyJapan2026-02-26Morlong Associates NEW34Bernardo Dominic
1044Morrow B StockhamSpain2026-03-01Chapman, Ross E Esq NEW22Anna Fali
1045Costa L MaletItaly2026-02-24Rousseaux, Michael Esq NEGOTIATION11Bernardo Dominic
1046Stacey M BowleyCanada2026-03-21Printing Dimensions RENEWAL76Ioni Bowcher
1047Faith A StockhamJapan2026-03-19Chanay, Jeffrey A Esq NEGOTIATION73Onyama Limba
1048Morrow C GlickFrance2026-03-22Benton, John B Jr NEGOTIATION32Amy Elsner
1049Aditya L ChuiArgentina2026-03-19Rangoni Of Florence PROPOSAL92Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Darci N BriddickArgentinaAmy Elsner QUALIFIED
Faith G ButtBrazilBernardo Dominic UNQUALIFIED
Leon K WhobreyUnited KingdomBernardo Dominic UNQUALIFIED
Sinclair V DilliardArgentinaElwin Sharvill RENEWAL
Morrow U CampainUnited KingdomStephen Shaw UNQUALIFIED
Maria E RulapaughGermanyElwin Sharvill NEW
Costa N GauchoJapanElwin Sharvill UNQUALIFIED
Julie Z PaprockiFranceAmy Elsner NEGOTIATION
Leon H RutaIndiaAmy Elsner PROPOSAL
Julie F GillianAustraliaElwin Sharvill NEGOTIATION
Sinclair G RoysterGermanyAmy Elsner QUALIFIED
Wickens I MorascaRussiaAsiya Javayant QUALIFIED
Morrow E TollnerCanadaOnyama Limba UNQUALIFIED
Cody R StockhamIndiaAnna Fali NEGOTIATION
Misaki S MaletRussiaBernardo Dominic RENEWAL
James I NestleSpainIvan Magalhaes PROPOSAL
Antonio V InouyeJapanAmy Elsner PROPOSAL
Morrow R ChuiSpainIoni Bowcher NEW
Ashley M StensethArgentinaAnna Fali PROPOSAL
Alejandro L SchemmerGermanyIoni Bowcher NEW
Izzy K DoeCanadaAsiya Javayant NEGOTIATION
Kaitlin A BriddickJapanAsiya Javayant NEGOTIATION
Claire H ButtArgentinaOnyama Limba NEGOTIATION
Arvin B CampainSpainStephen Shaw QUALIFIED
Murillo W SergiAustraliaAmy Elsner QUALIFIED
Alejandro Z DarakjyBrazilAmy Elsner UNQUALIFIED
Octavia Q BriddickItalyAmy Elsner RENEWAL
Munro F MorascaAustraliaIvan Magalhaes PROPOSAL
Nicolas L MacleadItalyStephen Shaw NEW
Mujtaba D ChuiGermanyStephen Shaw NEW
Maria B VocelkaSpainIvan Magalhaes NEGOTIATION
Munro H KolmetzFranceOnyama Limba RENEWAL
Nicolas Q OstroskySpainStephen Shaw QUALIFIED
Jennifer V GarufiItalyBernardo Dominic PROPOSAL
Deepesh I RimAustraliaAnna Fali NEW
Mujtaba Q GillianArgentinaAsiya Javayant NEW
Mujtaba H MaletAustraliaStephen Shaw RENEWAL
Silvio A StensethItalyStephen Shaw PROPOSAL
Johnson M FerenczJapanAnna Fali UNQUALIFIED
Adams D MarrierIndiaIoni Bowcher PROPOSAL
Leon Y IturbideRussiaXuxue Feng PROPOSAL
Smith N NestleAustraliaBernardo Dominic UNQUALIFIED
Tony M KuskoItalyAmy Elsner RENEWAL
Smith P DarakjyUnited KingdomAmy Elsner NEW
Francesco M SchemmerBrazilIoni Bowcher QUALIFIED
Tony Q AmigonBrazilAmy Elsner QUALIFIED
Alejandro U GillianIndiaAsiya Javayant UNQUALIFIED
Morrow I MaletUnited KingdomAnna Fali NEW
Johnson B FigeroaAustraliaAmy Elsner PROPOSAL
Misaki U FollerRussiaIoni Bowcher RENEWAL
Frozen Columns
Name
Darci S Malet
Alejandro X Iturbide
Juan R Perin
Antonio Z Foller
Chavez A Ostrosky
Darci X Poquette
Ashley T Malet
Chavez R Maclead
Claire L Ferencz
Munro J Doe
Kaitlin P Shinko
Greenwood H Oldroyd
Alejandro P Malet
Aditya F Caldarera
Wickens D Iturbide
Francesco B Iturbide
Costa K Royster
Aika K Kolmetz
Mujtaba I Malet
Salvatore B Briddick
Salvatore J Oldroyd
Deepesh K Ferencz
Claire U Slusarski
Claire X Malet
Tony T Chui
Izzy Z Perin
Costa X Poquette
Stacey Q Saylors
Claire N Inouye
Ivar T Gaucho
Juan X Wieser
Kadeem W Ostrosky
Deepesh B Albares
Misaki J Shinko
Adams O Foller
David M Gaucho
Deepesh O Royster
Aika G Glick
Julie M Albares
Greenwood I Schemmer
Maisha V Waycott
Darci L Maclead
Morrow L Slusarski
Aika X Ruta
James Z Rim
Kadeem K Nicka
Sinclair K Amigon
Julie Z Oldroyd
Jeanfrancois A Flosi
Ashley Z Marrier
IdCountryDate
1000Spain2026-03-02
1001United Kingdom2026-03-10
1002Australia2026-03-18
1003Brazil2026-03-04
1004Russia2026-03-08
1005Japan2026-02-27
1006Germany2026-03-04
1007Australia2026-02-22
1008Germany2026-03-16
1009France2026-02-25
1010Brazil2026-03-19
1011Germany2026-03-02
1012Australia2026-03-08
1013Spain2026-03-12
1014Australia2026-03-17
1015Spain2026-03-08
1016Canada2026-03-12
1017Argentina2026-03-08
1018Russia2026-03-21
1019Russia2026-02-24
1020Russia2026-03-03
1021India2026-03-21
1022Spain2026-03-22
1023Spain2026-03-02
1024Germany2026-02-21
1025India2026-03-11
1026Canada2026-03-05
1027Russia2026-03-11
1028Russia2026-03-20
1029United Kingdom2026-03-20
1030Australia2026-03-03
1031France2026-03-18
1032Argentina2026-02-24
1033Japan2026-03-04
1034Italy2026-03-21
1035Canada2026-03-18
1036Japan2026-02-27
1037United Kingdom2026-02-22
1038Russia2026-03-13
1039India2026-03-03
1040India2026-03-03
1041India2026-03-10
1042Germany2026-03-07
1043Canada2026-03-06
1044United Kingdom2026-03-22
1045Brazil2026-02-22
1046Argentina2026-03-19
1047Argentina2026-03-10
1048Russia2026-03-14
1049Brazil2026-03-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio A BologniaArgentinaIoni Bowcher NEGOTIATION
Ricardo R VocelkaAustraliaIvan Magalhaes QUALIFIED
Salvatore V SlusarskiItalyOnyama Limba UNQUALIFIED
David H IturbideRussiaIvan Magalhaes NEW
Francesco R FlosiGermanyIvan Magalhaes UNQUALIFIED
Arvin A GillianGermanyElwin Sharvill QUALIFIED
Leja W RulapaughIndiaStephen Shaw NEW
Murillo T FigeroaFranceIoni Bowcher PROPOSAL
Juan S MaletIndiaXuxue Feng NEGOTIATION
Ashley B StockhamItalyIvan Magalhaes QUALIFIED
Greenwood T FlosiItalyXuxue Feng RENEWAL
Leon V CaldareraUnited KingdomAsiya Javayant RENEWAL
Ashley Y AlbaresRussiaBernardo Dominic UNQUALIFIED
Ashley A InouyeUnited KingdomIvan Magalhaes NEGOTIATION
Aditya V RoysterJapanBernardo Dominic PROPOSAL
Arvin A RulapaughItalyBernardo Dominic RENEWAL
Jefferson V ChuiArgentinaStephen Shaw NEW
Ivar L IturbideBrazilIvan Magalhaes RENEWAL
Tony U DoeSpainAnna Fali NEW
Jeanfrancois I SlusarskiIndiaIoni Bowcher RENEWAL
Francesco Z GarufiFranceStephen Shaw PROPOSAL
Kadeem N ChuiItalyElwin Sharvill UNQUALIFIED
Smith I PerinGermanyElwin Sharvill RENEWAL
Aruna D StensethCanadaBernardo Dominic PROPOSAL
Munro H AlbaresItalyIvan Magalhaes QUALIFIED
Mujtaba I OldroydAustraliaStephen Shaw NEGOTIATION
Claire L GlickArgentinaAnna Fali UNQUALIFIED
Ashley S NestleFranceIvan Magalhaes PROPOSAL
Cody C MarrierSpainAmy Elsner NEGOTIATION
Maisha U GlickCanadaElwin Sharvill RENEWAL
Clifford B FollerBrazilOnyama Limba QUALIFIED
Leja C PaprockiAustraliaAnna Fali UNQUALIFIED
Deepesh I GillianArgentinaOnyama Limba QUALIFIED
Emily C KuskoJapanStephen Shaw QUALIFIED
Jeanfrancois R GlickItalyAsiya Javayant NEW
Ashley W OstroskyIndiaOnyama Limba QUALIFIED
Jeanfrancois M BriddickJapanIvan Magalhaes RENEWAL
Alejandro O RulapaughRussiaXuxue Feng UNQUALIFIED
Greenwood B VenereArgentinaAmy Elsner NEGOTIATION
Juan Z BriddickCanadaStephen Shaw UNQUALIFIED

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