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 M SchemmerCanadaAsiya Javayant QUALIFIED
Julie Q GarufiGermanyAnna Fali NEGOTIATION
Mujtaba L FerenczUnited KingdomXuxue Feng PROPOSAL
Leja V WieserAustraliaBernardo Dominic RENEWAL
Greenwood U RoysterArgentinaXuxue Feng PROPOSAL
Kadeem B VocelkaArgentinaAnna Fali NEGOTIATION
Murillo P AmigonItalyXuxue Feng NEW
James P PoquetteUnited KingdomAnna Fali NEGOTIATION
Ricardo X ChuiItalyElwin Sharvill NEGOTIATION
Isabel U OldroydBrazilAsiya Javayant NEW
Emily D VenereArgentinaXuxue Feng RENEWAL
Rodrigues Q SergiItalyIvan Magalhaes QUALIFIED
Chavez J BowleyItalyStephen Shaw NEGOTIATION
Ashley C FerenczGermanyIoni Bowcher QUALIFIED
Salvatore K FlosiFranceAmy Elsner PROPOSAL
Morrow U GauchoArgentinaIoni Bowcher QUALIFIED
Leon L FollerIndiaIoni Bowcher NEW
Jones F InouyeBrazilAmy Elsner UNQUALIFIED
Juan Q FlosiCanadaElwin Sharvill PROPOSAL
Francesco S KuskoCanadaIoni Bowcher NEW
Johnson V MacleadAustraliaAnna Fali QUALIFIED
Ashley J SlusarskiIndiaAmy Elsner UNQUALIFIED
Greenwood B ButtRussiaOnyama Limba QUALIFIED
Rodrigues O StockhamFranceXuxue Feng PROPOSAL
Izzy F PaprockiBrazilAnna Fali PROPOSAL
Kaitlin L GarufiAustraliaAmy Elsner UNQUALIFIED
Greenwood T BologniaIndiaOnyama Limba QUALIFIED
Ashley V WhobreyRussiaAsiya Javayant QUALIFIED
Deepesh W BriddickCanadaIvan Magalhaes RENEWAL
Julie M WaycottRussiaStephen Shaw RENEWAL
Francesco Z MorascaCanadaOnyama Limba RENEWAL
Mujtaba M OldroydArgentinaOnyama Limba PROPOSAL
Stacey B RulapaughSpainAmy Elsner UNQUALIFIED
Leon U DilliardRussiaAsiya Javayant RENEWAL
Francesco N VocelkaFranceAnna Fali UNQUALIFIED
Tony O StensethSpainAmy Elsner QUALIFIED
Julie S VenereIndiaAsiya Javayant QUALIFIED
Aika H DarakjyBrazilIvan Magalhaes NEGOTIATION
Ashley F WieserFranceAmy Elsner NEW
Jeanfrancois M FerenczAustraliaIvan Magalhaes NEGOTIATION
Misaki R SchemmerGermanyXuxue Feng QUALIFIED
Ashley E RimUnited KingdomElwin Sharvill RENEWAL
Mujtaba W PaprockiBrazilOnyama Limba RENEWAL
Ivar I WieserItalyStephen Shaw PROPOSAL
Sinclair O TollnerCanadaOnyama Limba NEGOTIATION
Jones E KuskoBrazilBernardo Dominic UNQUALIFIED
Ivar U MacleadRussiaOnyama Limba NEW
Mayumi N KuskoIndiaOnyama Limba PROPOSAL
Tony G MacleadGermanyAnna Fali PROPOSAL
Smith L WieserItalyAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Murillo X NickaRussiaElwin Sharvill NEW
Ivar N GillianUnited KingdomStephen Shaw QUALIFIED
Juan O GauchoIndiaIoni Bowcher NEW
Kaitlin Y IturbideItalyIoni Bowcher UNQUALIFIED
David R KolmetzAustraliaIoni Bowcher QUALIFIED
Maisha V ShinkoArgentinaStephen Shaw RENEWAL
Munro S RoysterAustraliaAsiya Javayant PROPOSAL
Munro O PaprockiSpainAnna Fali RENEWAL
Kadeem X VenereGermanyIoni Bowcher UNQUALIFIED
Julie C PaprockiJapanElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith C StensethBrazil2026-02-23Chapman, Ross E Esq UNQUALIFIED50Amy Elsner
1001Kadeem D MarrierArgentina2026-03-20Buckley Miller Wright RENEWAL13Amy Elsner
1002Jefferson K DilliardGermany2026-03-07Rangoni Of Florence NEGOTIATION16Ivan Magalhaes
1003Salvatore S RimFrance2026-03-06Morlong Associates NEW90Onyama Limba
1004Johnson I MacleadRussia2026-03-16Chemel, James L Cpa RENEWAL12Stephen Shaw
1005Tony M WieserBrazil2026-02-26Rangoni Of Florence UNQUALIFIED2Xuxue Feng
1006Aika V SchemmerArgentina2026-03-12Rousseaux, Michael Esq PROPOSAL97Xuxue Feng
1007Kaitlin J KuskoArgentina2026-03-17Commercial Press PROPOSAL13Xuxue Feng
1008Kadeem N RimRussia2026-03-16Rousseaux, Michael Esq QUALIFIED99Anna Fali
1009Kadeem A PaprockiGermany2026-03-18Chemel, James L Cpa PROPOSAL48Ivan Magalhaes
1010Johnson B RutaGermany2026-03-16Feiner Bros NEGOTIATION52Asiya Javayant
1011Leon D PerinCanada2026-03-10Morlong Associates QUALIFIED1Xuxue Feng
1012Octavia A BowleyBrazil2026-03-12Rousseaux, Michael Esq UNQUALIFIED18Anna Fali
1013Cody O VocelkaCanada2026-03-07Benton, John B Jr NEW74Bernardo Dominic
1014Mayumi H RimSpain2026-03-11Morlong Associates PROPOSAL92Stephen Shaw
1015Leja C BriddickGermany2026-03-04Feiner Bros NEW24Asiya Javayant
1016Adams G PerinArgentina2026-02-25Truhlar And Truhlar Attys UNQUALIFIED66Bernardo Dominic
1017Jefferson J AlbaresRussia2026-02-23Chanay, Jeffrey A Esq UNQUALIFIED9Stephen Shaw
1018Salvatore Z GarufiUnited Kingdom2026-02-24Morlong Associates PROPOSAL49Ioni Bowcher
1019Mayumi L WaycottFrance2026-03-11Printing Dimensions NEGOTIATION92Bernardo Dominic
1020Costa C CaldareraRussia2026-03-22Commercial Press QUALIFIED8Ivan Magalhaes
1021Maria Q FlosiItaly2026-02-21Chemel, James L Cpa UNQUALIFIED92Amy Elsner
1022David H MarrierItaly2026-02-22Chanay, Jeffrey A Esq NEW84Stephen Shaw
1023Jefferson N NestleCanada2026-02-22Benton, John B Jr UNQUALIFIED59Ivan Magalhaes
1024Sinclair W BriddickUnited Kingdom2026-03-19Truhlar And Truhlar Attys NEW54Xuxue Feng
1025Jones Y VenereIndia2026-03-06Feiner Bros UNQUALIFIED22Amy Elsner
1026Nicolas R WhobreyGermany2026-03-06Rousseaux, Michael Esq QUALIFIED37Ioni Bowcher
1027Francesco M RoysterArgentina2026-03-08Chemel, James L Cpa PROPOSAL25Ivan Magalhaes
1028Ricardo P TollnerRussia2026-02-28Chemel, James L Cpa UNQUALIFIED65Onyama Limba
1029Claire D TollnerItaly2026-03-19Rousseaux, Michael Esq QUALIFIED54Anna Fali
1030Alejandro T DoeFrance2026-03-07Printing Dimensions NEW21Elwin Sharvill
1031Johnson V AlbaresFrance2026-02-21Chanay, Jeffrey A Esq QUALIFIED50Asiya Javayant
1032Chavez V DarakjyItaly2026-03-07Rangoni Of Florence NEGOTIATION83Anna Fali
1033Aika A WaycottAustralia2026-03-08Feltz Printing Service QUALIFIED74Elwin Sharvill
1034Tony A RimFrance2026-03-10King, Christopher A Esq RENEWAL84Xuxue Feng
1035Jones F DarakjyIndia2026-03-19King, Christopher A Esq NEW6Asiya Javayant
1036Aika M DarakjyArgentina2026-03-21Rousseaux, Michael Esq RENEWAL29Stephen Shaw
1037Jones F GillianRussia2026-03-04Buckley Miller Wright RENEWAL16Stephen Shaw
1038Claire L StensethJapan2026-03-18King, Christopher A Esq NEW34Xuxue Feng
1039Wickens V KolmetzIndia2026-03-11Chapman, Ross E Esq RENEWAL41Bernardo Dominic
1040Silvio Z CaudyIndia2026-03-11Chanay, Jeffrey A Esq NEGOTIATION82Stephen Shaw
1041Maisha U PoquetteSpain2026-03-18Chapman, Ross E Esq NEGOTIATION7Onyama Limba
1042Faith K WieserJapan2026-02-28Feltz Printing Service NEGOTIATION14Anna Fali
1043Munro Q KolmetzCanada2026-03-18Feiner Bros RENEWAL46Ivan Magalhaes
1044Izzy A GlickJapan2026-03-05Buckley Miller Wright QUALIFIED7Bernardo Dominic
1045Izzy B GillianGermany2026-02-22Truhlar And Truhlar Attys NEGOTIATION37Ivan Magalhaes
1046Chavez F GauchoBrazil2026-03-19Feiner Bros PROPOSAL96Onyama Limba
1047Alejandro T CampainGermany2026-03-04Buckley Miller Wright QUALIFIED28Asiya Javayant
1048Jones Z MaletCanada2026-03-20Rangoni Of Florence RENEWAL78Amy Elsner
1049Juan I RoysterRussia2026-03-15Truhlar And Truhlar Attys NEW83Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Stacey Z BriddickFranceStephen Shaw PROPOSAL
Costa M SaylorsSpainAnna Fali RENEWAL
Emily R OstroskyAustraliaAmy Elsner PROPOSAL
Faith X BriddickGermanyStephen Shaw UNQUALIFIED
David X NickaUnited KingdomAnna Fali RENEWAL
Johnson W GauchoAustraliaIvan Magalhaes PROPOSAL
Aditya G OstroskyFranceBernardo Dominic QUALIFIED
Costa E WieserRussiaAmy Elsner QUALIFIED
David S GauchoBrazilIoni Bowcher NEGOTIATION
Johnson G DilliardAustraliaBernardo Dominic PROPOSAL
Francesco Y FerenczCanadaBernardo Dominic PROPOSAL
Leon G ButtCanadaAnna Fali UNQUALIFIED
Jennifer D RoysterRussiaBernardo Dominic RENEWAL
Chavez E SchemmerGermanyAsiya Javayant RENEWAL
Francesco Y KolmetzItalyOnyama Limba NEW
Leja F BologniaIndiaStephen Shaw PROPOSAL
Octavia D FigeroaBrazilIoni Bowcher UNQUALIFIED
Cody Y AlbaresCanadaIoni Bowcher NEGOTIATION
Chavez S FerenczJapanBernardo Dominic RENEWAL
Chavez E SaylorsGermanyBernardo Dominic NEW
Johnson L AmigonFranceXuxue Feng QUALIFIED
Juan S DarakjyFranceBernardo Dominic NEGOTIATION
Alejandro E VenereUnited KingdomXuxue Feng UNQUALIFIED
Nicolas L CaldareraJapanStephen Shaw NEW
Jefferson Q WieserBrazilXuxue Feng RENEWAL
Costa X FlosiBrazilAsiya Javayant NEW
Cody I RulapaughArgentinaIvan Magalhaes RENEWAL
Emily T FerenczBrazilElwin Sharvill PROPOSAL
Misaki U BologniaRussiaAsiya Javayant NEGOTIATION
Ricardo Z StensethIndiaOnyama Limba RENEWAL
Jefferson D MarrierCanadaIoni Bowcher NEGOTIATION
Murillo R DoeGermanyElwin Sharvill NEW
Sinclair L WieserFranceIvan Magalhaes PROPOSAL
Izzy Y VocelkaIndiaIvan Magalhaes RENEWAL
Ivar Q MarrierSpainElwin Sharvill PROPOSAL
Silvio F DarakjyFranceAmy Elsner QUALIFIED
Francesco H GlickGermanyIoni Bowcher PROPOSAL
Francesco V WieserBrazilBernardo Dominic NEGOTIATION
Jeanfrancois S SergiArgentinaAnna Fali PROPOSAL
Murillo O CampainRussiaElwin Sharvill UNQUALIFIED
Aika F MaletRussiaXuxue Feng PROPOSAL
Chavez E MacleadFranceAsiya Javayant QUALIFIED
Wickens J NickaArgentinaStephen Shaw NEW
Nicolas B CampainSpainAsiya Javayant NEW
Munro I GillianCanadaAsiya Javayant NEGOTIATION
Mayumi H MacleadIndiaOnyama Limba NEW
Johnson G TollnerArgentinaStephen Shaw PROPOSAL
Smith A SchemmerBrazilOnyama Limba RENEWAL
Deepesh O GillianUnited KingdomElwin Sharvill PROPOSAL
Leon G SlusarskiGermanyElwin Sharvill NEW
Frozen Columns
Name
Kaitlin W Wieser
Stacey B Gaucho
Wickens X Ostrosky
Faith X Vocelka
Jones F Kusko
Stacey A Malet
Alejandro A Ferencz
Maria I Ferencz
Rodrigues C Caudy
Aika X Rulapaugh
Clifford F Briddick
Maisha F Iturbide
Greenwood M Slusarski
Jefferson B Albares
Ashley C Caldarera
Aditya W Maclead
Darci P Ostrosky
Kadeem S Ruta
Clifford S Kusko
Arvin Y Poquette
Smith B Tollner
Morrow E Perin
Jones N Ruta
Costa J Figeroa
Aditya V Paprocki
Tony W Briddick
Faith I Rim
Rodrigues G Slusarski
Murillo H Marrier
Darci W Vocelka
Izzy M Gillian
Munro C Ostrosky
Mujtaba L Ruta
David I Stockham
Aruna W Iturbide
Kaitlin J Waycott
Aditya J Paprocki
Smith J Dilliard
Ashley Z Malet
Salvatore C Briddick
Juan C Venere
Chavez Q Campain
Morrow I Morasca
Johnson D Perin
Claire X Iturbide
Aika H Chui
Octavia J Garufi
Kadeem O Rim
David X Oldroyd
David I Whobrey
IdCountryDate
1000Italy2026-03-17
1001Spain2026-03-08
1002Canada2026-02-24
1003Italy2026-02-26
1004Russia2026-03-03
1005Spain2026-02-22
1006Argentina2026-03-21
1007United Kingdom2026-03-17
1008Australia2026-03-20
1009Germany2026-02-23
1010Brazil2026-03-01
1011Germany2026-03-17
1012Australia2026-02-22
1013Canada2026-03-22
1014Brazil2026-03-11
1015Russia2026-02-26
1016India2026-02-24
1017Argentina2026-03-01
1018Brazil2026-02-21
1019France2026-02-28
1020Canada2026-03-04
1021Argentina2026-02-21
1022Spain2026-03-15
1023Spain2026-03-15
1024United Kingdom2026-03-03
1025Japan2026-03-08
1026Russia2026-03-17
1027Russia2026-03-19
1028India2026-03-22
1029France2026-03-09
1030Spain2026-03-13
1031United Kingdom2026-03-05
1032Japan2026-03-19
1033Italy2026-02-28
1034Japan2026-03-09
1035Italy2026-02-25
1036Argentina2026-03-04
1037Argentina2026-02-26
1038India2026-03-14
1039Japan2026-03-10
1040Australia2026-03-06
1041France2026-02-22
1042France2026-03-07
1043Brazil2026-03-01
1044France2026-02-25
1045Australia2026-03-11
1046India2026-02-26
1047Russia2026-02-24
1048Argentina2026-03-06
1049Canada2026-03-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi W AmigonIndiaBernardo Dominic UNQUALIFIED
James V FerenczAustraliaOnyama Limba NEGOTIATION
Leon W OstroskyRussiaIvan Magalhaes UNQUALIFIED
Leja W CaudyArgentinaBernardo Dominic RENEWAL
Maria M SchemmerItalyStephen Shaw RENEWAL
James Z RimBrazilXuxue Feng NEGOTIATION
Wickens C IturbideGermanyIvan Magalhaes UNQUALIFIED
Leon R StockhamJapanOnyama Limba NEGOTIATION
Silvio M PerinBrazilAnna Fali PROPOSAL
Ivar U IturbideAustraliaStephen Shaw NEGOTIATION
Misaki Q VenereGermanyXuxue Feng PROPOSAL
Deepesh Y KolmetzIndiaXuxue Feng NEGOTIATION
Antonio M ButtFranceOnyama Limba UNQUALIFIED
Cody S NickaCanadaIoni Bowcher RENEWAL
James K VenereUnited KingdomXuxue Feng RENEWAL
Izzy H FigeroaFranceXuxue Feng PROPOSAL
Nicolas S GlickJapanXuxue Feng NEW
Clifford G SaylorsArgentinaAsiya Javayant NEGOTIATION
Misaki R ButtRussiaAnna Fali NEW
Faith X TollnerItalyAsiya Javayant NEGOTIATION
Chavez R InouyeUnited KingdomIoni Bowcher RENEWAL
Darci I StockhamItalyIvan Magalhaes PROPOSAL
Jennifer N MaletSpainOnyama Limba NEGOTIATION
Ashley W MorascaFranceAmy Elsner NEGOTIATION
Munro O WieserJapanIvan Magalhaes NEW
Kadeem C MarrierBrazilStephen Shaw NEW
Arvin B RimAustraliaAsiya Javayant NEGOTIATION
Adams V FollerIndiaAnna Fali QUALIFIED
Misaki G RoysterItalyAnna Fali PROPOSAL
Emily U PaprockiRussiaElwin Sharvill NEW
Francesco R DilliardFranceAsiya Javayant NEGOTIATION
Munro B StockhamItalyAsiya Javayant NEW
Isabel E FlosiFranceAmy Elsner NEGOTIATION
Claire F RimBrazilAnna Fali UNQUALIFIED
Aika L SergiCanadaBernardo Dominic NEW
Francesco B BriddickArgentinaElwin Sharvill NEGOTIATION
Emily T FerenczArgentinaIvan Magalhaes PROPOSAL
Arvin T GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Emily N PaprockiAustraliaOnyama Limba QUALIFIED
Arvin G DoeIndiaStephen Shaw PROPOSAL

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