Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选定的行在datalist JSF中未被选中_Jsf_Primefaces - Fatal编程技术网

选定的行在datalist JSF中未被选中

选定的行在datalist JSF中未被选中,jsf,primefaces,Jsf,Primefaces,我在jsf中将datalist与primefaces一起使用,我面临的问题是,所选对象的bean类字段并没有更新到datalist的所选行,它总是给空对象。这是密码 查看文件: `<?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/j

我在jsf中将datalist与primefaces一起使用,我面临的问题是,所选对象的bean类字段并没有更新到datalist的所选行,它总是给空对象。这是密码

查看文件:

`<?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>
            <p:dataList value="#{tableBean.getList()}" var="job" id="cars" 
                paginator="true" rows="5" effectSpeed="fast"
                paginatorTemplate="{PreviousPageLink} {CurrentPageReport} {NextPageLink} {RowsPerPageDropdown}"
                rowsPerPageTemplate="5" type="none">

                <f:facet name="header">  
                Applicants List
            </f:facet>

        <p:column>
                <div style="width: 200px">
                    <h:outputText value="Name:" style="margin-left:10px" />
                    <h:outputText value="#{job.name}" style="margin-left:10px" />
                    <br />
                    <h:outputText value="Applied for:" style="margin-left:10px" />
                    <h:outputText value="#{job.jobtitle}" style="margin-left:10px" />
                    <br />

                    <h:outputText value="Degree:" style="margin-left:10px" />
                    <h:outputText value="#{job.degree}" style="margin-left:10px" />
                    <br />
                    <h:outputText value="Experience:" style="margin-left:10px" />
                    <h:outputText value="#{job.experience}" style="margin-left:10px" />
                    <br />
                    <h:outputText value="Contact:" style="margin-left:10px" />
                    <h:outputText value="#{job.contact}" style="margin-left:10px" />
                    <br />
                    <h:commandLink value="Call for Interview" style="margin-left:10px"></h:commandLink>
                </div>
                <br/>

                <p:commandButton icon="ui-icon-search"
                    actionListener="#{tableBean.printView}" title="View Detail">
                    <f:setPropertyActionListener value="#{job}"
                        target="#{tableBean.selectedJob}" />
                </p:commandButton>

                <p:separator id="separator" />
                </p:column>
            </p:dataList>

        </h:form>


    </h:body>
</f:view>
``
申请人名单






表bean类:

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;

import DAO.JobApplicationDao;
import DTO.JobApplicationDto;

@ManagedBean
@ViewScoped
public class TableBean implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;



public JobApplicationDto selectedJob;

    public TableBean() {


    }

    public List<JobApplicationDto> getList() {
        List<JobApplicationDto> joblist = new ArrayList<JobApplicationDto>();
        JobApplicationDao dao = new JobApplicationDao();
        joblist =dao.getDroppedCv();

        return joblist;

    }



    public JobApplicationDto getSelectedJob() {
        return selectedJob;
    }

    public void setSelectedJob(JobApplicationDto selectedJob) {
        this.selectedJob = selectedJob;
    }

    public void printView(ActionEvent event) {
    try{
        System.out.print("Selected Person "+getSelectedJob.getName());
    }catch(Exception e){

    }

    }
import java.io.Serializable;
导入java.util.ArrayList;
导入java.util.List;
导入java.util.logging.Logger;
导入javax.faces.bean.ManagedBean;
导入javax.faces.bean.SessionScoped;
导入javax.faces.bean.ViewScoped;
导入javax.faces.event.ActionEvent;
导入DAO.job应用DAO;
导入DTO.jobApplicationTo;
@ManagedBean
@视域
公共类TableBean实现了可序列化{
/**
* 
*/
私有静态最终长serialVersionUID=1L;
公共工作申请到选定的工作;
公共TableBean(){
}
公共列表getList(){
List joblist=new ArrayList();
JobApplicationDao=新的JobApplicationDao();
joblist=dao.getDroppedCv();
返回工作清单;
}
public Job ApplicationTo getSelectedJob(){
返回所选作业;
}
public void setselected job(job application to selected job){
this.selectedJob=selectedJob;
}
公共无效打印视图(ActionEvent事件){
试一试{
System.out.print(“所选人员”+getSelectedJob.getName());
}捕获(例外e){
}
}

}

您可以像这样使用数据表选择

<p:dataList value="#{tableBean.getList()}" selection="#{tableBean.selectedJob}"  var="job" id="cars" 
            paginator="true" rows="5" effectSpeed="fast"
            paginatorTemplate="{PreviousPageLink} {CurrentPageReport} {NextPageLink} {RowsPerPageDropdown}"
            rowsPerPageTemplate="5" type="none">

您应该将setPropertyActionListener与操作一起使用。在调用操作之前会调用侦听器。似乎setPropertyActionListener在actionListener之后被调用

actionListener=“#{tableBean.printView}”更改为
action=“#{tableBean.printView}”

方法

public void printView() {
    try{
        System.out.print("Selected Person "+getSelectedJob.getName());
    }catch(Exception e){

    }

    }
为了更好地理解使用什么,请参见此


首先,你说的选择是什么意思?单击
p:commandButton
p:dataList
没有选择属性。upps!很抱歉,我刚刚意识到,我以为这是datatable,我的错误。您可以尝试向commandButton添加process=“:form:cars”属性