我正在使用 primefaces jsf 的数据列表。我只是从 arraylist 填充数据并显示在 datalist 中,还使用对话框进行详细视图,但是选择值对话框的问题没有显示它们。这里是代码 UI 类:
<?xml version="1.0"?>
<f:view xmlns="http://www.w3.org/1999/xhtml"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui"
    xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head />
    <h:body>
        <h:form id="form">
            <p:dataList value="#{tableBean.applicantlist}" var="applicant"
                id="applicants" paginator="true" rows="5"
                paginatorTemplate="{PreviousPageLink} {CurrentPageReport} {NextPageLink} {RowsPerPageDropdown}"
                rowsPerPageTemplate="5,10,15" type="none">
                <f:facet name="header">  
                Applicants 
            </f:facet>
                <h:outputText value="#{applicant.jobtitle}, #{applicant.useremail}"
                    style="margin-left:10px" />
                <p:commandButton icon="ui-icon-search" update=":form:appDetail"
                    oncomplete="appDialog.show()" title="View Detail">
                    <f:setPropertyActionListener value="#{applicant}"
                        target="#{tableBean.selectedApplicant}" />
                </p:commandButton>
            </p:dataList>
            <p:dialog header="Car Detail" widgetVar="appDialog" modal="true"
                showEffect="fade">
                <p:outputPanel id="appDetail" style="text-align:center;"
                    layout="block">
                    <h:panelGrid columns="2" cellpadding="5">
                        <h:outputLabel for="modelNo" value="Model No: " />
                        <h:outputText id="modelNo"
                            value="#{tableBean.selectedApplicant.useremail}" />
                    </h:panelGrid>
                </p:outputPanel>
            </p:dialog>
        </h:form>
    </h:body>
</f:view> 
这是桌豆:
package com.DTO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
@ManagedBean
@SessionScoped
public class TableBean implements Serializable {
    private List<InterViewDto> applicantlist;
    private InterViewDto selectedApplicant;
    public List<InterViewDto> getApplicantlist() {
        return applicantlist;
    }
    public void setApplicantlist(List<InterViewDto> applicantlist) {
        this.applicantlist = applicantlist;
    }
    public InterViewDto getSelectedApplicant() {
        return selectedApplicant;
    }
    public void setSelectedApplicant(InterViewDto selectedApplicant) {
        this.selectedApplicant = selectedApplicant;
    }
    public TableBean() {
        getSelectedApplicant();
        applicantlist = new ArrayList<InterViewDto>();
        InterViewDto p1 = new InterViewDto();
        p1.setJobtitle("junaid");
        p1.setUseremail("email@hotmail.com");
        applicantlist.add(p1);
    }
}
Here is DTO Class:
package com.DTO;
import java.sql.SQLException;
import java.util.Date;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
@ManagedBean
@SessionScoped
public class InterViewDto {
    String useremail,jobtitle;
    Date date;
    public String getUseremail() {
        return useremail;
    }
    public InterViewDto(){
    }
    public void setUseremail(String useremail) {
        this.useremail = useremail;
    }
    public String getJobtitle() {
        return jobtitle;
    }
    public void setJobtitle(String jobtitle) {
        this.jobtitle = jobtitle;
    }
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }
}