Jsf 2 选择列表:如何检索要添加或删除的选定项
我正在处理挑选名单这是我的代码: xhtml代码:Jsf 2 选择列表:如何检索要添加或删除的选定项,jsf-2,primefaces,managed-bean,Jsf 2,Primefaces,Managed Bean,我正在处理挑选名单这是我的代码: xhtml代码: <p:pickList id="pickList" value="#{projectAdminisrationMB.selectedUserGroups}" var="group" itemLabel="#{group}" itemValue="#{group.name}" converter="groupConverter" &
<p:pickList id="pickList" value="#{projectAdminisrationMB.selectedUserGroups}"
var="group"
itemLabel="#{group}" itemValue="#{group.name}"
converter="groupConverter"
>
<f:facet name="sourceCaption">Belong To</f:facet>
<f:facet name="targetCaption">Exclude From</f:facet>
<p:column style="width:25%">
<p:graphicImage value="/images/group/#{group.name}.gif" />
</p:column>
<p:column style="width:75%;">
#{group.name}
</p:column>
<p:ajax event="transfer" listener="#
{projectAdminisrationMB.onTransferGroup}" update="growl" />
</p:pickList>
我的目标是从选择列表中检索添加或删除的项
OnTransferGroup方法:
public void onTransferGroup(TransferEvent event) {
if(event.isAdd()){
String resMsg;
System.out.println("dropped group to be excluded");
for(Object item : event.getItems()) {
Group selectedBelongToGroup =(Group) item;
resMsg=administrationProjectFinal.exclureUserGroupFn(selectedBelongToGroup
,selectedUserRow);
if (resMsg.equals("The project should have at least
one administrator"))
{setDeleteGroupFlag(true);
showErrorMsg(resMsg);
}
else droppedBelongToGroups.add(selectedBelongToGroup);
}
}
else if(event.isRemove()){
System.out.println("remove");
System.out.println("dropped group to be included");
for(Object item : event.getItems()) {
Group selectedExcludeFromGroup = ((Group)item);
System.err.println(" n" +selectedExcludeFromGroup.getName());
System.err.println("d "+selectedExcludeFromGroup.getDescription());
droppedExcludeFromToGroups.add(selectedExcludeFromGroup);
administrationProjectFinal.inclureUserGroup(selectedExcludeFromGroup
,selectedUserRow);
}
}
}
问题是event.getItems()列表始终为空。
当我第一次挑东西的时候,onTransferGroup(TransferEvent事件)不是午餐,但在那之后它就很幸运了
因此,如何检索要添加或删除的选定项在“getAsObject”方法的第一条语句中添加一个“return”,这样它就不会到达逻辑的其余部分。另外,如果您从getItems方法中得到一个null返回值,这肯定意味着转换器问题,所以请检查上面的内容
public void onTransferGroup(TransferEvent event) {
if(event.isAdd()){
String resMsg;
System.out.println("dropped group to be excluded");
for(Object item : event.getItems()) {
Group selectedBelongToGroup =(Group) item;
resMsg=administrationProjectFinal.exclureUserGroupFn(selectedBelongToGroup
,selectedUserRow);
if (resMsg.equals("The project should have at least
one administrator"))
{setDeleteGroupFlag(true);
showErrorMsg(resMsg);
}
else droppedBelongToGroups.add(selectedBelongToGroup);
}
}
else if(event.isRemove()){
System.out.println("remove");
System.out.println("dropped group to be included");
for(Object item : event.getItems()) {
Group selectedExcludeFromGroup = ((Group)item);
System.err.println(" n" +selectedExcludeFromGroup.getName());
System.err.println("d "+selectedExcludeFromGroup.getDescription());
droppedExcludeFromToGroups.add(selectedExcludeFromGroup);
administrationProjectFinal.inclureUserGroup(selectedExcludeFromGroup
,selectedUserRow);
}
}
}