Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Java Primefaces Datatable在触发操作时提供空指针异常_Java_Jsf_Primefaces - Fatal编程技术网

Java Primefaces Datatable在触发操作时提供空指针异常

Java Primefaces Datatable在触发操作时提供空指针异常,java,jsf,primefaces,Java,Jsf,Primefaces,我试图使用datatable组件,但在selection属性中使用数组而不是对象 我的域名是EfaDocLabelModel,我将CarDataModel(从showcase)更新为EfaDocLabelModel以下是代码 public EfaDocLabelModel() { } public EfaDocLabelModel(List<EfaDocLabelMatch> data) { super(data); } @Override public EfaDocLab

我试图使用datatable组件,但在selection属性中使用数组而不是对象

我的域名是EfaDocLabelModel,我将CarDataModel(从showcase)更新为EfaDocLabelModel以下是代码

public EfaDocLabelModel() {
}
public EfaDocLabelModel(List<EfaDocLabelMatch> data) {
    super(data);
}
@Override
public EfaDocLabelMatch getRowData(String rowKey) {
      List<EfaDocLabelMatch> docLabelList = (List<EfaDocLabelMatch>) getWrappedData();
    for (EfaDocLabelMatch docLabel : docLabelList) {
        if (docLabel.getDoclabelId().toString().equals(rowKey)) {
            return docLabel;
        }
    }
    return null;
}
@Override
public Object getRowKey(EfaDocLabelMatch docLabel) {
    return docLabel.getDoclabelId();

}
我可以从showcase运行多个选择,该选择使用了CarDataModel,但在根据需要修改时使用了相同的结构,我发现了此错误

这是我的豆子

public class DocLabelBean implements Serializable {
private List<EfaDocLabelMatch> docLabelMatchList;
private EfaDocLabelMatch[] docLabelArray;


    public String updateLabel() {
    EfaDocLabelMatch[] selectedDocArray = getDocLabelArray();//I m sure I m 
    //getting error because selectedDocArray is null. 
    DTO result = new DTO();
    for (EfaDocLabelMatch docLabel : selectedDocArray) {
    }
公共类DocLabelBean实现可序列化{
私有列表docLabelMatchList;
私有EfaDocLabelMatch[]文件阵列;
公共字符串updateLabel(){
EfaDocLabelMatch[]SelectedCarray=getDocLabelArray();//我确信我
//获取错误,因为SelectedCarray为空。
DTO结果=新的DTO();
用于(EfaDocLabelMatch docLabel:SelectedCarray){
}
以下是我的页面必需的代码:

<p:dataTable emptyMessage="No Labeled Doc" 
 var="docLabel" value="#{docLabelBean.docLabelModel}" 
 selection="#{docLabelBean.docLabelArray}"> 
 <p:column selectionMode="multiple"  />
 <p:column headerText="Id" >  
 #{docLabel.doclabelId} 
 </p:column>  
 <p:column headerText="Doc No" >  
 #{docLabel.documentId}  
 </p:column>  
 <p:column headerText="Label Key" >  
 #{docLabel.docLabelKey}  
 </p:column>

#{docLabel.doclabelId}
#{docLabel.documentId}
#{docLabel.docLabelKey}
和第页的commanbutton代码:

<p:commandButton value="Sil" icon="ui-icon-search"  
update="@form"  process="@form"
action="#{docLabelBean.updateLabel()}" /> 

我尝试了ajax=false和balusc提到的其他可能的错误原因,但仍然无法解决问题 这是
。我需要将选定的行分配给列表或数组,如果这是一个真正的错误。有其他方法吗?

请添加列定义。@TooR感谢您的评论我编辑并添加了我的列。您是如何解决此问题的?
<p:commandButton value="Sil" icon="ui-icon-search"  
update="@form"  process="@form"
action="#{docLabelBean.updateLabel()}" />