Primefaces datatable筛选器在筛选器不返回行时保留对象值的问题

Primefaces datatable筛选器在筛选器不返回行时保留对象值的问题,primefaces,primefaces-datatable,Primefaces,Primefaces Datatable,我使用的是primefaces(6.2)datatable,而使用列过滤器时,我观察到一种奇怪的行为,尽管所有列(带有outputText、inputText)都保留对象值,带有“selectOneMenu”、“selectBooleanCheckbox”的列不保留对象值,并返回null、false。 问题仅在执行筛选器时发生,如果筛选器至少返回一行,则文件管理器不返回任何行。所有内容看起来都正常,所有列的行为都正常。请查找下面我用来进行故障排除的代码片段,我非常感谢为解决此问题提供的任何输入

我使用的是primefaces(6.2)datatable,而使用列过滤器时,我观察到一种奇怪的行为,尽管所有列(带有outputText、inputText)都保留对象值,带有“selectOneMenu”、“selectBooleanCheckbox”的列不保留对象值,并返回null、false。 问题仅在执行筛选器时发生,如果筛选器至少返回一行,则文件管理器不返回任何行。所有内容看起来都正常,所有列的行为都正常。请查找下面我用来进行故障排除的代码片段,我非常感谢为解决此问题提供的任何输入

XHTML


ManagedBean

import java.util.ArrayList;
导入java.util.List;
导入javax.annotation.PostConstruct;
导入javax.inject.Named;
导入org.springframework.context.annotation.Scope;
导入com.model.Contact;
@命名为(“myBean”)
@范围(“视图”)
公共类MyBean扩展了BaseManagedBean{
私人联络人名单;
@施工后
公共void init(){
lstContact=新的ArrayList();
触点obj1=新触点();
obj1.设置称呼(“MR”);
obj1.setStrFirstName(“AAA”);
触点obj2=新触点();
obj2.setStrFirstName(“BBB”);
触点obj3=新触点();
obj3.设定称呼(“MR”);
obj3.setStrFirstName(“CCC”);
lstContact.add(obj1);
lstContact.add(obj2);
lstContact.add(obj3);
}
公共列表getLstContact(){
回接;
}
public void setLstContact(列表lstContact){
this.lstContact=lstContact;
}
}

如果我只是在第二列(名字)过滤器中输入“X”并删除“X”,那么第一列(称呼)中的所有值都将消失。

Primefaces数据表也出现了奇怪的排序/过滤问题。对我来说,行对象需要实现“Serializable”,因此请查看“Contact”是否实现了“Serializable”,如果没有,请尝试添加它并查看是否有帮助。@Chris先生谢谢您的评论,向primefaces团队提出了一个问题。