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
Rodrigues E VenereGermanyAmy Elsner NEW
Alejandro B RimBrazilElwin Sharvill PROPOSAL
Ivar H RutaArgentinaAsiya Javayant PROPOSAL
Aruna D PaprockiCanadaIvan Magalhaes QUALIFIED
Juan Z KolmetzIndiaAmy Elsner QUALIFIED
Leja H IturbideCanadaElwin Sharvill QUALIFIED
Wickens G RimItalyXuxue Feng QUALIFIED
Deepesh H RutaCanadaAnna Fali NEGOTIATION
Adams Q BowleyUnited KingdomAnna Fali UNQUALIFIED
Aditya R FigeroaArgentinaAsiya Javayant PROPOSAL
Chavez Q PerinIndiaAmy Elsner PROPOSAL
Rodrigues A DoeRussiaOnyama Limba RENEWAL
Deepesh G GlickBrazilAnna Fali UNQUALIFIED
Cody G TollnerJapanOnyama Limba NEGOTIATION
Murillo Q WhobreySpainIoni Bowcher PROPOSAL
Izzy L ChuiSpainIvan Magalhaes PROPOSAL
Mujtaba S TollnerArgentinaIvan Magalhaes NEW
Morrow N DilliardIndiaElwin Sharvill QUALIFIED
Maisha D SlusarskiCanadaAnna Fali NEW
Aruna I FerenczJapanOnyama Limba RENEWAL
Morrow H AmigonGermanyAnna Fali QUALIFIED
Faith X SlusarskiBrazilIvan Magalhaes NEW
Sinclair X WhobreyJapanAsiya Javayant UNQUALIFIED
Antonio Q FollerItalyIvan Magalhaes NEW
David I WhobreyRussiaIoni Bowcher PROPOSAL
Misaki Q BowleyJapanIvan Magalhaes NEGOTIATION
Silvio F CampainCanadaXuxue Feng PROPOSAL
Darci N NestleAustraliaIvan Magalhaes NEGOTIATION
Arvin N MaletGermanyAsiya Javayant UNQUALIFIED
Maria Y CaudyGermanyBernardo Dominic NEGOTIATION
Chavez S WhobreySpainOnyama Limba NEW
Jones T RoysterJapanOnyama Limba NEGOTIATION
Aditya N ButtArgentinaIvan Magalhaes NEGOTIATION
Aika G NestleArgentinaIvan Magalhaes UNQUALIFIED
Salvatore Y MaletBrazilStephen Shaw PROPOSAL
Leon I VenereSpainAsiya Javayant RENEWAL
Munro X FlosiBrazilXuxue Feng RENEWAL
Johnson L BriddickGermanyElwin Sharvill PROPOSAL
Murillo A CaudyRussiaIvan Magalhaes QUALIFIED
Murillo P StockhamFranceStephen Shaw NEW
Francesco E GarufiRussiaElwin Sharvill PROPOSAL
Mayumi W CaudyCanadaOnyama Limba UNQUALIFIED
Rodrigues B ChuiCanadaAsiya Javayant RENEWAL
Tony H WhobreyBrazilBernardo Dominic PROPOSAL
Chavez T DoeGermanyIoni Bowcher NEW
Sinclair A InouyeSpainIvan Magalhaes NEGOTIATION
Aruna F FlosiJapanIoni Bowcher QUALIFIED
Kaitlin X BriddickGermanyElwin Sharvill NEW
Smith K BowleyUnited KingdomAmy Elsner NEW
Ashley J VocelkaFranceStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Aruna C FlosiItalyIvan Magalhaes PROPOSAL
Leja Z StensethJapanAnna Fali NEW
Ivar W MaletIndiaAsiya Javayant PROPOSAL
Jeanfrancois J DoeAustraliaOnyama Limba NEGOTIATION
Rodrigues Y ChuiUnited KingdomStephen Shaw QUALIFIED
Deepesh M MorascaSpainAsiya Javayant UNQUALIFIED
Izzy R InouyeFranceIoni Bowcher NEGOTIATION
Ashley K ChuiSpainStephen Shaw NEGOTIATION
Silvio F GarufiAustraliaBernardo Dominic UNQUALIFIED
Arvin D MaletRussiaBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel V StensethItaly2026-03-18Chapman, Ross E Esq QUALIFIED82Anna Fali
1001Deepesh G ChuiAustralia2026-04-07Morlong Associates RENEWAL35Xuxue Feng
1002Sinclair G GlickRussia2026-03-28Commercial Press PROPOSAL30Amy Elsner
1003Darci G VocelkaRussia2026-03-30Commercial Press PROPOSAL43Asiya Javayant
1004Wickens H CaldareraAustralia2026-03-22Dorl, James J Esq UNQUALIFIED68Xuxue Feng
1005Emily E GlickBrazil2026-03-28Printing Dimensions QUALIFIED50Anna Fali
1006Francesco W NickaCanada2026-03-30Dorl, James J Esq NEW56Stephen Shaw
1007Clifford W WaycottAustralia2026-03-26Dorl, James J Esq RENEWAL24Asiya Javayant
1008Maisha L MacleadAustralia2026-03-18Feiner Bros NEGOTIATION93Amy Elsner
1009Faith S KolmetzGermany2026-04-04Morlong Associates NEW78Stephen Shaw
1010Arvin S BowleyUnited Kingdom2026-03-15King, Christopher A Esq RENEWAL16Anna Fali
1011Mayumi P NickaCanada2026-03-12Rangoni Of Florence NEGOTIATION62Onyama Limba
1012Faith U KolmetzRussia2026-04-03Buckley Miller Wright NEGOTIATION65Asiya Javayant
1013Juan E CaldareraIndia2026-03-27Chapman, Ross E Esq PROPOSAL8Elwin Sharvill
1014Faith R RoysterSpain2026-03-20Dorl, James J Esq UNQUALIFIED80Xuxue Feng
1015Misaki V SaylorsItaly2026-03-13King, Christopher A Esq RENEWAL98Bernardo Dominic
1016Darci K GillianArgentina2026-03-11Commercial Press NEGOTIATION85Ivan Magalhaes
1017Stacey H RulapaughCanada2026-03-27Feltz Printing Service NEGOTIATION28Stephen Shaw
1018Ricardo G SergiJapan2026-04-05Rangoni Of Florence QUALIFIED45Xuxue Feng
1019Silvio T IturbideAustralia2026-04-03Feiner Bros RENEWAL41Onyama Limba
1020Salvatore E CaldareraAustralia2026-04-02Truhlar And Truhlar Attys NEGOTIATION74Xuxue Feng
1021David K KolmetzJapan2026-04-04Morlong Associates NEW69Bernardo Dominic
1022Ashley M VenereSpain2026-03-26Chemel, James L Cpa RENEWAL53Anna Fali
1023Faith V CaudyAustralia2026-03-11Chapman, Ross E Esq NEGOTIATION49Elwin Sharvill
1024David V GarufiArgentina2026-04-02Benton, John B Jr QUALIFIED43Amy Elsner
1025Leja B MaletGermany2026-03-15King, Christopher A Esq QUALIFIED17Bernardo Dominic
1026Juan J MorascaFrance2026-03-14Chapman, Ross E Esq RENEWAL3Asiya Javayant
1027Claire Q ShinkoFrance2026-03-10Morlong Associates RENEWAL45Amy Elsner
1028Adams J RutaFrance2026-03-29Truhlar And Truhlar Attys RENEWAL48Elwin Sharvill
1029Costa U PoquetteItaly2026-03-12Rangoni Of Florence RENEWAL50Xuxue Feng
1030Ricardo K ButtCanada2026-03-23Printing Dimensions UNQUALIFIED48Ioni Bowcher
1031Silvio S MorascaGermany2026-03-20Rousseaux, Michael Esq RENEWAL86Ivan Magalhaes
1032Francesco B AlbaresJapan2026-03-15Rangoni Of Florence NEW12Bernardo Dominic
1033Chavez F RutaAustralia2026-03-27Rousseaux, Michael Esq NEGOTIATION19Amy Elsner
1034Munro C StensethJapan2026-03-12Rousseaux, Michael Esq NEGOTIATION60Anna Fali
1035Julie S RulapaughIndia2026-03-19Commercial Press PROPOSAL99Ioni Bowcher
1036Aika M AmigonBrazil2026-04-01Chapman, Ross E Esq QUALIFIED54Ivan Magalhaes
1037Francesco Z MorascaArgentina2026-03-21Benton, John B Jr QUALIFIED46Anna Fali
1038Julie T SergiUnited Kingdom2026-03-23Feiner Bros NEGOTIATION24Asiya Javayant
1039Nicolas L DilliardItaly2026-04-05Commercial Press PROPOSAL29Asiya Javayant
1040Jefferson M RutaRussia2026-03-14Rousseaux, Michael Esq QUALIFIED68Stephen Shaw
1041Aika C AmigonArgentina2026-03-24Benton, John B Jr RENEWAL7Asiya Javayant
1042Claire G ShinkoArgentina2026-03-11Benton, John B Jr RENEWAL10Ivan Magalhaes
1043Sinclair W SaylorsBrazil2026-03-11Chemel, James L Cpa QUALIFIED95Stephen Shaw
1044Morrow R SchemmerJapan2026-03-17Rousseaux, Michael Esq UNQUALIFIED23Onyama Limba
1045Tony S PoquetteJapan2026-04-04Chanay, Jeffrey A Esq UNQUALIFIED21Bernardo Dominic
1046Mayumi A PerinRussia2026-03-24Feltz Printing Service NEGOTIATION44Amy Elsner
1047Jefferson B ButtAustralia2026-03-30Feiner Bros NEGOTIATION47Elwin Sharvill
1048Isabel Q NestleBrazil2026-04-07Chemel, James L Cpa NEW63Ioni Bowcher
1049Maisha S RoysterBrazil2026-03-19Dorl, James J Esq NEGOTIATION47Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Leon I FollerCanadaAnna Fali NEW
Ashley Q VocelkaRussiaOnyama Limba PROPOSAL
Izzy J AlbaresFranceIoni Bowcher UNQUALIFIED
Ricardo Z StensethAustraliaAsiya Javayant QUALIFIED
Antonio H GarufiIndiaIvan Magalhaes NEW
Leja Z WhobreyRussiaIvan Magalhaes NEGOTIATION
Wickens L BowleyCanadaIoni Bowcher QUALIFIED
Darci J AlbaresAustraliaAnna Fali RENEWAL
Leja S SlusarskiFranceIvan Magalhaes QUALIFIED
Ricardo B BologniaJapanBernardo Dominic PROPOSAL
Antonio E SlusarskiSpainIoni Bowcher UNQUALIFIED
Emily P SaylorsBrazilAnna Fali NEW
Antonio S VenereRussiaXuxue Feng UNQUALIFIED
Jennifer W StockhamItalyElwin Sharvill NEW
David Q OstroskyCanadaOnyama Limba QUALIFIED
Faith B MacleadSpainXuxue Feng NEGOTIATION
Arvin O SaylorsIndiaIvan Magalhaes RENEWAL
Chavez G KolmetzFranceAsiya Javayant NEGOTIATION
Maisha V VocelkaRussiaStephen Shaw RENEWAL
Jones U IturbideBrazilIvan Magalhaes UNQUALIFIED
Leon U PerinSpainAnna Fali QUALIFIED
Isabel F WieserGermanyAsiya Javayant PROPOSAL
Kadeem D MacleadFranceBernardo Dominic PROPOSAL
Smith P CampainIndiaXuxue Feng RENEWAL
Morrow W CaldareraSpainIvan Magalhaes NEW
Wickens I StockhamItalyXuxue Feng PROPOSAL
Jennifer F GillianArgentinaBernardo Dominic PROPOSAL
Munro K SlusarskiGermanyXuxue Feng RENEWAL
Aruna K FlosiArgentinaElwin Sharvill QUALIFIED
Francesco M NestleCanadaBernardo Dominic RENEWAL
David N GarufiJapanAnna Fali NEW
Mayumi Z SlusarskiAustraliaAmy Elsner QUALIFIED
Stacey D WieserIndiaAnna Fali NEGOTIATION
Stacey J FerenczCanadaAsiya Javayant RENEWAL
Julie S IturbideBrazilXuxue Feng QUALIFIED
Jones D CaudyJapanAsiya Javayant RENEWAL
Leon F DoeJapanStephen Shaw PROPOSAL
Jennifer T CaudyItalyAmy Elsner UNQUALIFIED
Julie Q BowleyItalyIoni Bowcher UNQUALIFIED
Maisha H GlickCanadaAsiya Javayant PROPOSAL
Juan S NickaItalyAnna Fali PROPOSAL
Salvatore V IturbideRussiaElwin Sharvill PROPOSAL
Cody P MarrierArgentinaIvan Magalhaes QUALIFIED
Smith D FollerGermanyElwin Sharvill PROPOSAL
Francesco D PerinIndiaIoni Bowcher QUALIFIED
Cody Q RulapaughUnited KingdomBernardo Dominic NEGOTIATION
Wickens M DoeSpainStephen Shaw QUALIFIED
Cody D MacleadFranceAsiya Javayant NEW
Cody K GauchoAustraliaAsiya Javayant RENEWAL
Cody E RulapaughItalyStephen Shaw NEW
Frozen Columns
Name
Tony F Slusarski
Ivar N Sergi
Johnson J Briddick
Claire C Figeroa
Jeanfrancois S Stenseth
Aruna V Figeroa
Ashley G Nicka
Jefferson O Figeroa
Kadeem F Stockham
Adams F Nicka
Stacey G Stenseth
Antonio C Figeroa
Arvin K Kolmetz
Aika E Caudy
Jennifer J Nicka
Deepesh Y Whobrey
Silvio N Maclead
Mujtaba X Morasca
Mayumi S Malet
Smith E Paprocki
Aika O Wieser
Smith H Malet
Nicolas A Bolognia
Johnson T Campain
Jones R Nestle
Cody M Sergi
Leja T Doe
Alejandro D Inouye
Misaki U Gaucho
Munro T Venere
Ricardo W Royster
Wickens G Campain
Jeanfrancois G Inouye
Alejandro W Vocelka
Alejandro Y Figeroa
Greenwood I Gillian
Jennifer B Slusarski
Maisha M Perin
Claire Q Waycott
Antonio N Kolmetz
James K Briddick
Jefferson Z Oldroyd
Cody X Iturbide
James N Flosi
Aruna H Iturbide
Francesco U Slusarski
Aika K Figeroa
Mayumi I Flosi
Maisha Y Kolmetz
Greenwood R Rulapaugh
IdCountryDate
1000Australia2026-03-13
1001Australia2026-03-29
1002Italy2026-03-17
1003Spain2026-03-24
1004Russia2026-03-21
1005Russia2026-03-23
1006Germany2026-03-25
1007Russia2026-03-20
1008Russia2026-03-17
1009Australia2026-03-20
1010India2026-03-09
1011Italy2026-03-25
1012Canada2026-03-21
1013Canada2026-03-11
1014Argentina2026-04-01
1015Germany2026-03-15
1016Australia2026-03-25
1017Italy2026-03-29
1018India2026-03-24
1019Germany2026-03-29
1020Russia2026-03-10
1021Japan2026-03-28
1022France2026-03-09
1023United Kingdom2026-03-12
1024Argentina2026-03-10
1025Germany2026-04-04
1026United Kingdom2026-03-20
1027India2026-03-10
1028Australia2026-03-19
1029Canada2026-03-11
1030Spain2026-03-11
1031Germany2026-03-25
1032Argentina2026-03-17
1033Germany2026-03-25
1034India2026-03-18
1035Brazil2026-03-12
1036Russia2026-03-19
1037France2026-03-15
1038Japan2026-03-09
1039Russia2026-04-07
1040Germany2026-03-25
1041Russia2026-03-16
1042Canada2026-04-01
1043Russia2026-03-09
1044Russia2026-04-06
1045United Kingdom2026-04-06
1046Italy2026-03-20
1047Japan2026-03-18
1048Germany2026-03-18
1049Spain2026-03-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David U GlickGermanyAnna Fali QUALIFIED
Sinclair F DilliardUnited KingdomIoni Bowcher NEW
Arvin X PerinCanadaAmy Elsner RENEWAL
Munro I StensethCanadaXuxue Feng PROPOSAL
Aditya Z CampainIndiaIoni Bowcher RENEWAL
Sinclair B CampainIndiaAnna Fali QUALIFIED
Kadeem Q RimGermanyAsiya Javayant QUALIFIED
Arvin D MacleadGermanyIoni Bowcher UNQUALIFIED
Morrow A VocelkaRussiaAsiya Javayant PROPOSAL
Leon T VocelkaSpainOnyama Limba PROPOSAL
Greenwood L ShinkoJapanAsiya Javayant PROPOSAL
Stacey Z KuskoGermanyElwin Sharvill QUALIFIED
Arvin N BologniaUnited KingdomIvan Magalhaes NEGOTIATION
Aditya K CaudySpainIvan Magalhaes NEGOTIATION
Juan I ChuiJapanAnna Fali QUALIFIED
Francesco J FerenczRussiaAmy Elsner PROPOSAL
Tony P WieserRussiaAsiya Javayant UNQUALIFIED
Mayumi H WaycottIndiaBernardo Dominic QUALIFIED
Ricardo I BriddickItalyElwin Sharvill PROPOSAL
Mayumi H FerenczIndiaIoni Bowcher NEGOTIATION
Maria O MaletRussiaIoni Bowcher NEW
Octavia G GauchoJapanIoni Bowcher NEW
Ashley M VenereCanadaIvan Magalhaes UNQUALIFIED
Tony F InouyeFranceElwin Sharvill PROPOSAL
Rodrigues V ButtUnited KingdomAmy Elsner UNQUALIFIED
Salvatore E AlbaresArgentinaAmy Elsner UNQUALIFIED
Isabel Y WieserSpainAmy Elsner PROPOSAL
Stacey L CaudyArgentinaAsiya Javayant PROPOSAL
James T CaudyJapanAsiya Javayant UNQUALIFIED
Mujtaba D RimUnited KingdomOnyama Limba QUALIFIED
Claire E MaletAustraliaElwin Sharvill UNQUALIFIED
Kadeem W NickaIndiaIoni Bowcher UNQUALIFIED
Leon P DilliardFranceAmy Elsner RENEWAL
Sinclair L TollnerGermanyStephen Shaw QUALIFIED
Ivar Z OldroydGermanyAmy Elsner PROPOSAL
Ricardo M PoquetteArgentinaXuxue Feng NEW
Adams Y StensethUnited KingdomAnna Fali RENEWAL
Tony W GillianFranceBernardo Dominic RENEWAL
Wickens N AmigonRussiaAsiya Javayant UNQUALIFIED
Leon E MorascaIndiaIvan Magalhaes 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: