Jsf 过滤空行后,使用Primefaces在datatable中分页时显示空行

Jsf 过滤空行后,使用Primefaces在datatable中分页时显示空行,jsf,datatable,facelets,primefaces,Jsf,Datatable,Facelets,Primefaces,我对使用PrimeFaces2.2.1和JSF2.0的datatable有问题 <p:dataTable var="user" value="#{userManagedBean.searchUsersResults}" selection="#{userManagedBean.selectedUser}" selectionMode="single" dynamic="true" onRowSelectUpdate="userUpdateFo

我对使用PrimeFaces2.2.1和JSF2.0的datatable有问题

<p:dataTable var="user" value="#{userManagedBean.searchUsersResults}"
        selection="#{userManagedBean.selectedUser}" selectionMode="single"
        dynamic="true"
        onRowSelectUpdate="userUpdateForm"
        onRowUnselectUpdate="userUpdateForm"
        rowSelectListener="#{userManagedBean.onUserSelect}"
        rowUnselectListener="#{userManagedBean.onUserUnselect}"
        paginator="true" rows="10" style="width: 70% ">
        <p:column sortBy="#{user.userId}" filterBy="#{user.userId}" >
            <f:facet name="header">
            <h:outputText value="Id" />
            </f:facet>
            <h:outputText value="#{user.userId}" />
            </p:column>
            <p:column sortBy="#{user.username}" filterBy="#{user.username}">
            <f:facet name="header">
            <h:outputText value="Name" />
            </f:facet>
            <h:outputText value="#{user.username}" />
            </p:column>
            <p:column sortBy="#{user.emailId}" filterBy="#{user.emailId}">
            <f:facet name="header">
            <h:outputText value="Email" />
            </f:facet>
            <h:outputText value="#{user.emailId}" />
            </p:column>
            <p:column sortBy="#{user.dob}" filterBy="#{user.dob}">
            <f:facet name="header">
            <h:outputText value="DOB" />
            </f:facet>
            <h:outputText value="#{user.dob}" >
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:outputText>
        </p:column>
    </p:dataTable>
    <p:panel id="userDetailsPanelId" header="Users Details" style="width:60%;">
    <h:panelGrid columns="2" cellpadding="2" id="userUpdateForm" border="0" >
            <h:outputLabel for="#{userManagedBean.selectedUser.userId}" value="UserId"/>
            <h:inputText value="#{userManagedBean.selectedUser.userId}" style="width: 100%;" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.username}" value="Username"/>
            <h:inputText value="#{userManagedBean.selectedUser.username}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.emailId}" value="EmailId"/>
            <h:inputText value="#{userManagedBean.selectedUser.emailId}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.gender}" value="Gender"/>
            <h:inputText value="#{userManagedBean.selectedUser.gender}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.dob}" value="DOB"/>
            <h:inputText value="#{userManagedBean.selectedUser.dob}" readonly="true">
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:inputText>

        </h:panelGrid>
        </p:panel>
    </h:form>
    </center>
我在datatable中使用了过滤和分页。当我尝试筛选选定数据时,将显示该数据;当我删除该筛选时,将显示整个数据。但在此之后,当我尝试使用分页时,所有行突然变为空白(空) 请参见下面的屏幕截图

<p:dataTable var="user" value="#{userManagedBean.searchUsersResults}"
        selection="#{userManagedBean.selectedUser}" selectionMode="single"
        dynamic="true"
        onRowSelectUpdate="userUpdateForm"
        onRowUnselectUpdate="userUpdateForm"
        rowSelectListener="#{userManagedBean.onUserSelect}"
        rowUnselectListener="#{userManagedBean.onUserUnselect}"
        paginator="true" rows="10" style="width: 70% ">
        <p:column sortBy="#{user.userId}" filterBy="#{user.userId}" >
            <f:facet name="header">
            <h:outputText value="Id" />
            </f:facet>
            <h:outputText value="#{user.userId}" />
            </p:column>
            <p:column sortBy="#{user.username}" filterBy="#{user.username}">
            <f:facet name="header">
            <h:outputText value="Name" />
            </f:facet>
            <h:outputText value="#{user.username}" />
            </p:column>
            <p:column sortBy="#{user.emailId}" filterBy="#{user.emailId}">
            <f:facet name="header">
            <h:outputText value="Email" />
            </f:facet>
            <h:outputText value="#{user.emailId}" />
            </p:column>
            <p:column sortBy="#{user.dob}" filterBy="#{user.dob}">
            <f:facet name="header">
            <h:outputText value="DOB" />
            </f:facet>
            <h:outputText value="#{user.dob}" >
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:outputText>
        </p:column>
    </p:dataTable>
    <p:panel id="userDetailsPanelId" header="Users Details" style="width:60%;">
    <h:panelGrid columns="2" cellpadding="2" id="userUpdateForm" border="0" >
            <h:outputLabel for="#{userManagedBean.selectedUser.userId}" value="UserId"/>
            <h:inputText value="#{userManagedBean.selectedUser.userId}" style="width: 100%;" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.username}" value="Username"/>
            <h:inputText value="#{userManagedBean.selectedUser.username}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.emailId}" value="EmailId"/>
            <h:inputText value="#{userManagedBean.selectedUser.emailId}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.gender}" value="Gender"/>
            <h:inputText value="#{userManagedBean.selectedUser.gender}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.dob}" value="DOB"/>
            <h:inputText value="#{userManagedBean.selectedUser.dob}" readonly="true">
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:inputText>

        </h:panelGrid>
        </p:panel>
    </h:form>
    </center>

<p:dataTable var="user" value="#{userManagedBean.searchUsersResults}"
        selection="#{userManagedBean.selectedUser}" selectionMode="single"
        dynamic="true"
        onRowSelectUpdate="userUpdateForm"
        onRowUnselectUpdate="userUpdateForm"
        rowSelectListener="#{userManagedBean.onUserSelect}"
        rowUnselectListener="#{userManagedBean.onUserUnselect}"
        paginator="true" rows="10" style="width: 70% ">
        <p:column sortBy="#{user.userId}" filterBy="#{user.userId}" >
            <f:facet name="header">
            <h:outputText value="Id" />
            </f:facet>
            <h:outputText value="#{user.userId}" />
            </p:column>
            <p:column sortBy="#{user.username}" filterBy="#{user.username}">
            <f:facet name="header">
            <h:outputText value="Name" />
            </f:facet>
            <h:outputText value="#{user.username}" />
            </p:column>
            <p:column sortBy="#{user.emailId}" filterBy="#{user.emailId}">
            <f:facet name="header">
            <h:outputText value="Email" />
            </f:facet>
            <h:outputText value="#{user.emailId}" />
            </p:column>
            <p:column sortBy="#{user.dob}" filterBy="#{user.dob}">
            <f:facet name="header">
            <h:outputText value="DOB" />
            </f:facet>
            <h:outputText value="#{user.dob}" >
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:outputText>
        </p:column>
    </p:dataTable>
    <p:panel id="userDetailsPanelId" header="Users Details" style="width:60%;">
    <h:panelGrid columns="2" cellpadding="2" id="userUpdateForm" border="0" >
            <h:outputLabel for="#{userManagedBean.selectedUser.userId}" value="UserId"/>
            <h:inputText value="#{userManagedBean.selectedUser.userId}" style="width: 100%;" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.username}" value="Username"/>
            <h:inputText value="#{userManagedBean.selectedUser.username}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.emailId}" value="EmailId"/>
            <h:inputText value="#{userManagedBean.selectedUser.emailId}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.gender}" value="Gender"/>
            <h:inputText value="#{userManagedBean.selectedUser.gender}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.dob}" value="DOB"/>
            <h:inputText value="#{userManagedBean.selectedUser.dob}" readonly="true">
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:inputText>

        </h:panelGrid>
        </p:panel>
    </h:form>
    </center>

<p:dataTable var="user" value="#{userManagedBean.searchUsersResults}"
        selection="#{userManagedBean.selectedUser}" selectionMode="single"
        dynamic="true"
        onRowSelectUpdate="userUpdateForm"
        onRowUnselectUpdate="userUpdateForm"
        rowSelectListener="#{userManagedBean.onUserSelect}"
        rowUnselectListener="#{userManagedBean.onUserUnselect}"
        paginator="true" rows="10" style="width: 70% ">
        <p:column sortBy="#{user.userId}" filterBy="#{user.userId}" >
            <f:facet name="header">
            <h:outputText value="Id" />
            </f:facet>
            <h:outputText value="#{user.userId}" />
            </p:column>
            <p:column sortBy="#{user.username}" filterBy="#{user.username}">
            <f:facet name="header">
            <h:outputText value="Name" />
            </f:facet>
            <h:outputText value="#{user.username}" />
            </p:column>
            <p:column sortBy="#{user.emailId}" filterBy="#{user.emailId}">
            <f:facet name="header">
            <h:outputText value="Email" />
            </f:facet>
            <h:outputText value="#{user.emailId}" />
            </p:column>
            <p:column sortBy="#{user.dob}" filterBy="#{user.dob}">
            <f:facet name="header">
            <h:outputText value="DOB" />
            </f:facet>
            <h:outputText value="#{user.dob}" >
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:outputText>
        </p:column>
    </p:dataTable>
    <p:panel id="userDetailsPanelId" header="Users Details" style="width:60%;">
    <h:panelGrid columns="2" cellpadding="2" id="userUpdateForm" border="0" >
            <h:outputLabel for="#{userManagedBean.selectedUser.userId}" value="UserId"/>
            <h:inputText value="#{userManagedBean.selectedUser.userId}" style="width: 100%;" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.username}" value="Username"/>
            <h:inputText value="#{userManagedBean.selectedUser.username}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.emailId}" value="EmailId"/>
            <h:inputText value="#{userManagedBean.selectedUser.emailId}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.gender}" value="Gender"/>
            <h:inputText value="#{userManagedBean.selectedUser.gender}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.dob}" value="DOB"/>
            <h:inputText value="#{userManagedBean.selectedUser.dob}" readonly="true">
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:inputText>

        </h:panelGrid>
        </p:panel>
    </h:form>
    </center>

<p:dataTable var="user" value="#{userManagedBean.searchUsersResults}"
        selection="#{userManagedBean.selectedUser}" selectionMode="single"
        dynamic="true"
        onRowSelectUpdate="userUpdateForm"
        onRowUnselectUpdate="userUpdateForm"
        rowSelectListener="#{userManagedBean.onUserSelect}"
        rowUnselectListener="#{userManagedBean.onUserUnselect}"
        paginator="true" rows="10" style="width: 70% ">
        <p:column sortBy="#{user.userId}" filterBy="#{user.userId}" >
            <f:facet name="header">
            <h:outputText value="Id" />
            </f:facet>
            <h:outputText value="#{user.userId}" />
            </p:column>
            <p:column sortBy="#{user.username}" filterBy="#{user.username}">
            <f:facet name="header">
            <h:outputText value="Name" />
            </f:facet>
            <h:outputText value="#{user.username}" />
            </p:column>
            <p:column sortBy="#{user.emailId}" filterBy="#{user.emailId}">
            <f:facet name="header">
            <h:outputText value="Email" />
            </f:facet>
            <h:outputText value="#{user.emailId}" />
            </p:column>
            <p:column sortBy="#{user.dob}" filterBy="#{user.dob}">
            <f:facet name="header">
            <h:outputText value="DOB" />
            </f:facet>
            <h:outputText value="#{user.dob}" >
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:outputText>
        </p:column>
    </p:dataTable>
    <p:panel id="userDetailsPanelId" header="Users Details" style="width:60%;">
    <h:panelGrid columns="2" cellpadding="2" id="userUpdateForm" border="0" >
            <h:outputLabel for="#{userManagedBean.selectedUser.userId}" value="UserId"/>
            <h:inputText value="#{userManagedBean.selectedUser.userId}" style="width: 100%;" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.username}" value="Username"/>
            <h:inputText value="#{userManagedBean.selectedUser.username}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.emailId}" value="EmailId"/>
            <h:inputText value="#{userManagedBean.selectedUser.emailId}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.gender}" value="Gender"/>
            <h:inputText value="#{userManagedBean.selectedUser.gender}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.dob}" value="DOB"/>
            <h:inputText value="#{userManagedBean.selectedUser.dob}" readonly="true">
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:inputText>

        </h:panelGrid>
        </p:panel>
    </h:form>
    </center>
任何建议。请帮忙

<p:dataTable var="user" value="#{userManagedBean.searchUsersResults}"
        selection="#{userManagedBean.selectedUser}" selectionMode="single"
        dynamic="true"
        onRowSelectUpdate="userUpdateForm"
        onRowUnselectUpdate="userUpdateForm"
        rowSelectListener="#{userManagedBean.onUserSelect}"
        rowUnselectListener="#{userManagedBean.onUserUnselect}"
        paginator="true" rows="10" style="width: 70% ">
        <p:column sortBy="#{user.userId}" filterBy="#{user.userId}" >
            <f:facet name="header">
            <h:outputText value="Id" />
            </f:facet>
            <h:outputText value="#{user.userId}" />
            </p:column>
            <p:column sortBy="#{user.username}" filterBy="#{user.username}">
            <f:facet name="header">
            <h:outputText value="Name" />
            </f:facet>
            <h:outputText value="#{user.username}" />
            </p:column>
            <p:column sortBy="#{user.emailId}" filterBy="#{user.emailId}">
            <f:facet name="header">
            <h:outputText value="Email" />
            </f:facet>
            <h:outputText value="#{user.emailId}" />
            </p:column>
            <p:column sortBy="#{user.dob}" filterBy="#{user.dob}">
            <f:facet name="header">
            <h:outputText value="DOB" />
            </f:facet>
            <h:outputText value="#{user.dob}" >
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:outputText>
        </p:column>
    </p:dataTable>
    <p:panel id="userDetailsPanelId" header="Users Details" style="width:60%;">
    <h:panelGrid columns="2" cellpadding="2" id="userUpdateForm" border="0" >
            <h:outputLabel for="#{userManagedBean.selectedUser.userId}" value="UserId"/>
            <h:inputText value="#{userManagedBean.selectedUser.userId}" style="width: 100%;" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.username}" value="Username"/>
            <h:inputText value="#{userManagedBean.selectedUser.username}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.emailId}" value="EmailId"/>
            <h:inputText value="#{userManagedBean.selectedUser.emailId}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.gender}" value="Gender"/>
            <h:inputText value="#{userManagedBean.selectedUser.gender}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.dob}" value="DOB"/>
            <h:inputText value="#{userManagedBean.selectedUser.dob}" readonly="true">
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:inputText>

        </h:panelGrid>
        </p:panel>
    </h:form>
    </center>
.xhtml文件

<p:dataTable var="user" value="#{userManagedBean.searchUsersResults}"
        selection="#{userManagedBean.selectedUser}" selectionMode="single"
        dynamic="true"
        onRowSelectUpdate="userUpdateForm"
        onRowUnselectUpdate="userUpdateForm"
        rowSelectListener="#{userManagedBean.onUserSelect}"
        rowUnselectListener="#{userManagedBean.onUserUnselect}"
        paginator="true" rows="10" style="width: 70% ">
        <p:column sortBy="#{user.userId}" filterBy="#{user.userId}" >
            <f:facet name="header">
            <h:outputText value="Id" />
            </f:facet>
            <h:outputText value="#{user.userId}" />
            </p:column>
            <p:column sortBy="#{user.username}" filterBy="#{user.username}">
            <f:facet name="header">
            <h:outputText value="Name" />
            </f:facet>
            <h:outputText value="#{user.username}" />
            </p:column>
            <p:column sortBy="#{user.emailId}" filterBy="#{user.emailId}">
            <f:facet name="header">
            <h:outputText value="Email" />
            </f:facet>
            <h:outputText value="#{user.emailId}" />
            </p:column>
            <p:column sortBy="#{user.dob}" filterBy="#{user.dob}">
            <f:facet name="header">
            <h:outputText value="DOB" />
            </f:facet>
            <h:outputText value="#{user.dob}" >
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:outputText>
        </p:column>
    </p:dataTable>
    <p:panel id="userDetailsPanelId" header="Users Details" style="width:60%;">
    <h:panelGrid columns="2" cellpadding="2" id="userUpdateForm" border="0" >
            <h:outputLabel for="#{userManagedBean.selectedUser.userId}" value="UserId"/>
            <h:inputText value="#{userManagedBean.selectedUser.userId}" style="width: 100%;" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.username}" value="Username"/>
            <h:inputText value="#{userManagedBean.selectedUser.username}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.emailId}" value="EmailId"/>
            <h:inputText value="#{userManagedBean.selectedUser.emailId}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.gender}" value="Gender"/>
            <h:inputText value="#{userManagedBean.selectedUser.gender}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.dob}" value="DOB"/>
            <h:inputText value="#{userManagedBean.selectedUser.dob}" readonly="true">
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:inputText>

        </h:panelGrid>
        </p:panel>
    </h:form>
    </center>

<p:dataTable var="user" value="#{userManagedBean.searchUsersResults}"
        selection="#{userManagedBean.selectedUser}" selectionMode="single"
        dynamic="true"
        onRowSelectUpdate="userUpdateForm"
        onRowUnselectUpdate="userUpdateForm"
        rowSelectListener="#{userManagedBean.onUserSelect}"
        rowUnselectListener="#{userManagedBean.onUserUnselect}"
        paginator="true" rows="10" style="width: 70% ">
        <p:column sortBy="#{user.userId}" filterBy="#{user.userId}" >
            <f:facet name="header">
            <h:outputText value="Id" />
            </f:facet>
            <h:outputText value="#{user.userId}" />
            </p:column>
            <p:column sortBy="#{user.username}" filterBy="#{user.username}">
            <f:facet name="header">
            <h:outputText value="Name" />
            </f:facet>
            <h:outputText value="#{user.username}" />
            </p:column>
            <p:column sortBy="#{user.emailId}" filterBy="#{user.emailId}">
            <f:facet name="header">
            <h:outputText value="Email" />
            </f:facet>
            <h:outputText value="#{user.emailId}" />
            </p:column>
            <p:column sortBy="#{user.dob}" filterBy="#{user.dob}">
            <f:facet name="header">
            <h:outputText value="DOB" />
            </f:facet>
            <h:outputText value="#{user.dob}" >
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:outputText>
        </p:column>
    </p:dataTable>
    <p:panel id="userDetailsPanelId" header="Users Details" style="width:60%;">
    <h:panelGrid columns="2" cellpadding="2" id="userUpdateForm" border="0" >
            <h:outputLabel for="#{userManagedBean.selectedUser.userId}" value="UserId"/>
            <h:inputText value="#{userManagedBean.selectedUser.userId}" style="width: 100%;" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.username}" value="Username"/>
            <h:inputText value="#{userManagedBean.selectedUser.username}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.emailId}" value="EmailId"/>
            <h:inputText value="#{userManagedBean.selectedUser.emailId}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.gender}" value="Gender"/>
            <h:inputText value="#{userManagedBean.selectedUser.gender}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.dob}" value="DOB"/>
            <h:inputText value="#{userManagedBean.selectedUser.dob}" readonly="true">
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:inputText>

        </h:panelGrid>
        </p:panel>
    </h:form>
    </center>


我非常肯定,这个已知的问题已经在2.2.RC和2.2决赛中得到了解决。我建议更新您的jar文件

我遇到了同样的问题,最终发现这是由于我的值对象(在本例中是您的用户对象)没有实现Serializable造成的

谢谢你的回复。但是我已经在使用primefaces-2.2.1.jar,它可以在primefaces网站上找到。你有没有其他的网址链接可以链接到“2.2.RC和2.2最终版本”。请提出建议。不,你的正确,这是根据他们的网站发布的最新版本。您可能希望尝试PrimeFaces支持论坛,或者将此作为错误报告给PrimeFaces.Yes。我已经在报纸上报道过了,但仍然没有运气。嗨,肖恩,如果可能的话,你能研究一下这个问题吗
<p:dataTable var="user" value="#{userManagedBean.searchUsersResults}"
        selection="#{userManagedBean.selectedUser}" selectionMode="single"
        dynamic="true"
        onRowSelectUpdate="userUpdateForm"
        onRowUnselectUpdate="userUpdateForm"
        rowSelectListener="#{userManagedBean.onUserSelect}"
        rowUnselectListener="#{userManagedBean.onUserUnselect}"
        paginator="true" rows="10" style="width: 70% ">
        <p:column sortBy="#{user.userId}" filterBy="#{user.userId}" >
            <f:facet name="header">
            <h:outputText value="Id" />
            </f:facet>
            <h:outputText value="#{user.userId}" />
            </p:column>
            <p:column sortBy="#{user.username}" filterBy="#{user.username}">
            <f:facet name="header">
            <h:outputText value="Name" />
            </f:facet>
            <h:outputText value="#{user.username}" />
            </p:column>
            <p:column sortBy="#{user.emailId}" filterBy="#{user.emailId}">
            <f:facet name="header">
            <h:outputText value="Email" />
            </f:facet>
            <h:outputText value="#{user.emailId}" />
            </p:column>
            <p:column sortBy="#{user.dob}" filterBy="#{user.dob}">
            <f:facet name="header">
            <h:outputText value="DOB" />
            </f:facet>
            <h:outputText value="#{user.dob}" >
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:outputText>
        </p:column>
    </p:dataTable>
    <p:panel id="userDetailsPanelId" header="Users Details" style="width:60%;">
    <h:panelGrid columns="2" cellpadding="2" id="userUpdateForm" border="0" >
            <h:outputLabel for="#{userManagedBean.selectedUser.userId}" value="UserId"/>
            <h:inputText value="#{userManagedBean.selectedUser.userId}" style="width: 100%;" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.username}" value="Username"/>
            <h:inputText value="#{userManagedBean.selectedUser.username}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.emailId}" value="EmailId"/>
            <h:inputText value="#{userManagedBean.selectedUser.emailId}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.gender}" value="Gender"/>
            <h:inputText value="#{userManagedBean.selectedUser.gender}" readonly="true"></h:inputText>

            <h:outputLabel for="#{userManagedBean.selectedUser.dob}" value="DOB"/>
            <h:inputText value="#{userManagedBean.selectedUser.dob}" readonly="true">
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:inputText>

        </h:panelGrid>
        </p:panel>
    </h:form>
    </center>