Jsf Richfaces 4.5拾取列表,右侧有重复项
环境:Jsf Richfaces 4.5拾取列表,右侧有重复项,jsf,richfaces,picklist,Jsf,Richfaces,Picklist,环境: <rich:pickList id="AssignRole" value="#{staffResourceRolesTargetList}" sourceCaption="Roles" targetCaption="Assigned Roles" listHeight="120" converter="#{org.jboss.seam.ui.EntityConverter}" orderable="false"> <f:selectItems value="#{
<rich:pickList id="AssignRole" value="#{staffResourceRolesTargetList}" sourceCaption="Roles" targetCaption="Assigned Roles" listHeight="120"
converter="#{org.jboss.seam.ui.EntityConverter}" orderable="false">
<f:selectItems value="#{staffResourceRolesSourceList}"
var="assignRoles" itemLabel="#{assignRoles.name}" />
<f:selectItems value="#{staffResourceRolesTargetList}"
var="assignedRoles" itemLabel="#{assignedRoles.name}" />
</rich:pickList>
Jboss 7.1.1.Final
JSF2.2.6
接缝2.3.1.最终
Richfaces 4.5.10.1决赛
问题:
<rich:pickList id="AssignRole" value="#{staffResourceRolesTargetList}" sourceCaption="Roles" targetCaption="Assigned Roles" listHeight="120"
converter="#{org.jboss.seam.ui.EntityConverter}" orderable="false">
<f:selectItems value="#{staffResourceRolesSourceList}"
var="assignRoles" itemLabel="#{assignRoles.name}" />
<f:selectItems value="#{staffResourceRolesTargetList}"
var="assignedRoles" itemLabel="#{assignedRoles.name}" />
</rich:pickList>
在第二次加载弹出窗口期间,rich:picklist用重复项填充右侧。以下是复制的步骤
<rich:pickList id="AssignRole" value="#{staffResourceRolesTargetList}" sourceCaption="Roles" targetCaption="Assigned Roles" listHeight="120"
converter="#{org.jboss.seam.ui.EntityConverter}" orderable="false">
<f:selectItems value="#{staffResourceRolesSourceList}"
var="assignRoles" itemLabel="#{assignRoles.name}" />
<f:selectItems value="#{staffResourceRolesTargetList}"
var="assignedRoles" itemLabel="#{assignedRoles.name}" />
</rich:pickList>
注意:
<rich:pickList id="AssignRole" value="#{staffResourceRolesTargetList}" sourceCaption="Roles" targetCaption="Assigned Roles" listHeight="120"
converter="#{org.jboss.seam.ui.EntityConverter}" orderable="false">
<f:selectItems value="#{staffResourceRolesSourceList}"
var="assignRoles" itemLabel="#{assignRoles.name}" />
<f:selectItems value="#{staffResourceRolesTargetList}"
var="assignedRoles" itemLabel="#{assignedRoles.name}" />
</rich:pickList>
- 我已经在picklist中使用的实体中重写了hashcode和equals方法
- 我必须使用两个f:selectItems列表,以便右侧进行预填充
- 源列表和目标列表属于同一实体集合
请帮我调试这个。我花了很多时间,希望有人能给我指引方向。如果您需要更多信息,请告诉我。请查看此处,我想这可能有助于您重新打开弹出窗口时,目标集合不是
clear()
,并且collection.add()
再次被调用。感谢Geinmachi和Mahendran的回复。我将尝试这些并发回我的结果。我无法在java端解决,因为集合看起来就在加载弹出窗口之前。因此,我最终使用jQuery进行了黑客攻击,并在加载弹出窗口后删除了重复项。希望它能帮助别人。