Ajax Primefaces自动完成(多个),处理预填充项

Ajax Primefaces自动完成(多个),处理预填充项,ajax,primefaces,autocomplete,Ajax,Primefaces,Autocomplete,我有一个非常简单的autocomplete(多个)组件(类似于PF showcase中的组件),允许用户从下拉列表中选择项目,还有一个commandbutton将值保存到数据库中 @PostConstruct方法获取数据并在自动完成组件中预填充它们(如果找到) 问题是组件似乎无法控制那些预填充的项。例如,如果我通过单击关闭图标删除一个事件,它将从页面中消失,但是ValueChangeListener、SelectEventListener(Ajax itemselect)和UnselectEve

我有一个非常简单的
autocomplete
(多个)组件(类似于PF showcase中的组件),允许用户从下拉列表中选择项目,还有一个
commandbutton
将值保存到数据库中

@PostConstruct
方法获取数据并在自动完成组件中预填充它们(如果找到)

问题是组件似乎无法控制那些预填充的项。例如,如果我通过单击关闭图标删除一个事件,它将从页面中消失,但是
ValueChangeListener
SelectEventListener
(Ajax itemselect)和
UnselectEventListener
(Ajax unselect)中的事件对象都不会返回正确的值,而是返回null。我只能添加或删除新添加的项目。如果删除其中一个预填充项,然后单击“保存”,则所有其他预填充项都将消失

如何在自动完成中处理(删除)预填充的项目

PF version 5.2
java

private List selectedSomeObjs=new ArrayList();
@施工后
公共void init(){
this.selectedSomeObjs=SomeDb.getSavedSomeObjs();
}
public void valueChange(valuechangevent事件){
Object oldVal=event.getOldValue();//返回预填充的项
Object newVal=event.getNewValue();//如果删除其中一个预先设置的项,则返回null
}
.xhtml



请说明您的PF版本。请在PF6.0.0上测试一个较新的版本,仍然不走运。
private List<SomeObjs> selectedSomeObjs = new ArrayList<>();

@PostConstruct
public void init() {
    this.selectedSomeObjs = SomeDb.getSavedSomeObjs();
}

public void valueChange(ValueChangeEvent event) {
    Object oldVal = event.getOldValue(); // return prepopulated items
    Object newVal = event.getNewValue(); // return null, if delete one of the prepupulated items
}
<p:autoComplete id="auto" multiple="true"
            value="#{bean.selectedSomeObjs}"
            completeMethod="#{bean.autoComplete}" var="v"
            itemLabel="#{v.desc}" itemValue="#{v}" autocomplete="true" maxResults="15"
            minQueryLength="1" queryDelay="100" forceSelection="true" cache="true"
            valueChangeListener="#{bean.valueChange}">
    <o:converter converterId="omnifaces.ListConverter" list="#{bean.objsList}"/>
    <p:ajax event="itemUnselect" listener="#{bean.selectListener}"/>
    <p:ajax event="itemSelect" listener="#{bean.unselectListener}"/>
</p:autoComplete>