Jsf 数据源映射没有';嵌套数据列表中有Dropable时不工作

Jsf 数据源映射没有';嵌套数据列表中有Dropable时不工作,jsf,primefaces,draggable,jsf-2.2,Jsf,Primefaces,Draggable,Jsf 2.2,这是主视图,其中包含可拖动的项。在这个视图中,我有一个ui:include,用于包含一个同样具有放置区域的ui片段 mainView.xhtml <p:dataList id="outerList" var="varOuter" value="#{myVO.getOuterList()}"> <div> <span>#{varOuter.someVal}</span>

这是主视图,其中包含可拖动的
项。在这个视图中,我有一个
ui:include
,用于包含一个同样具有放置区域的ui片段

mainView.xhtml

<p:dataList id="outerList" var="varOuter" value="#{myVO.getOuterList()}"> 
    <div>
        <span>#{varOuter.someVal}</span>                                        
    </div>  

    <p:dataList id="innerList" var="innerVar" value="#{myVO.getInnerList()}">
        <div class="crew-list">
            <h:form>                                                            
                <h:panelGroup id="draggableItem" layout="block">
                        <span>#{innerVar.someVal}</span>                                                
                </h:panelGroup>                                                                                                                                                             
                <p:draggable for="draggableItem" opacity="0.5" scope="ab"
                    revert="true" helper="clone" appendTo="@(body)" zindex="4" >                                                        
                </p:draggable>                                                      
            </h:form>   
         </div>
     </p:dataList>
</p:dataList>   
 ...

<ui:include src="fragment.xhtml">
        <ui:param name="param" value="#{paramVal}" />                                            
</ui:include>                           
<p:dataList id="list" var="pos" value="#{myVO.getPositions()}" rowIndexVar="rowIndex">
        <ui:fragment rendered="#{!pos.isFilled()}">
            <h:panelGroup layout="block" id="dropArea">
                <span>Drop Here</span>              
            </h:panelGroup>    
            <p:droppable for="dropArea" hoverStyleClass="active"
                    scope="ab" datasource=":outerList:innerList">
                <p:ajax listener="#{crewChangeVO.onDrop}" update="list" />
                <f:attribute name="index" value="#{rowIndex}" />
            </p:droppable>
        </ui:fragment>
</p:dataList>

#{varOuter.someVal}
#{innerVar.someVal}
...
fragment.xhtml

<p:dataList id="outerList" var="varOuter" value="#{myVO.getOuterList()}"> 
    <div>
        <span>#{varOuter.someVal}</span>                                        
    </div>  

    <p:dataList id="innerList" var="innerVar" value="#{myVO.getInnerList()}">
        <div class="crew-list">
            <h:form>                                                            
                <h:panelGroup id="draggableItem" layout="block">
                        <span>#{innerVar.someVal}</span>                                                
                </h:panelGroup>                                                                                                                                                             
                <p:draggable for="draggableItem" opacity="0.5" scope="ab"
                    revert="true" helper="clone" appendTo="@(body)" zindex="4" >                                                        
                </p:draggable>                                                      
            </h:form>   
         </div>
     </p:dataList>
</p:dataList>   
 ...

<ui:include src="fragment.xhtml">
        <ui:param name="param" value="#{paramVal}" />                                            
</ui:include>                           
<p:dataList id="list" var="pos" value="#{myVO.getPositions()}" rowIndexVar="rowIndex">
        <ui:fragment rendered="#{!pos.isFilled()}">
            <h:panelGroup layout="block" id="dropArea">
                <span>Drop Here</span>              
            </h:panelGroup>    
            <p:droppable for="dropArea" hoverStyleClass="active"
                    scope="ab" datasource=":outerList:innerList">
                <p:ajax listener="#{crewChangeVO.onDrop}" update="list" />
                <f:attribute name="index" value="#{rowIndex}" />
            </p:droppable>
        </ui:fragment>
</p:dataList>

到这里来
现在我遇到的问题是,我无法正确地将
数据源映射到droparea上。如果没有datasource,拖放可以工作,但是我在bean方法中无法获得数据(被拖动的对象),我需要一种方法来知道哪个对象被拖动

将对如何实现此功能的任何输入进行评估

更新
使用单个(非嵌套)数据列表作为源,并在其外部使用表单。但问题是它不适用于嵌套列表。因此,现在我正在进行设计更改并删除嵌套列表。

如果您在更大的“范围”上使用表单,而不是在每个重复项的数据列表中使用表单,该怎么办?ui:fragment相关吗?您确定通过
:outerList:innerList
引用数据源是正确的吗?如果您不“包括”它,而是直接使用它,那么它是否有效?如果我删除该表单并仅使用
datasource=“outerList”
它将在设置数据时开始调用该方法。Rest组合不起作用
ui:fragment
与我的情况相关,因为这是我发布的一小块html,视图中有更多的逻辑。我不确定
:outerList:innerList
是否正确。这就是我需要帮助的地方。链接数据源为什么要删除表单并更改数据源?这不是我想要测试的。。。一个接一个地试试看。。。干杯沙哈。。我确实一个接一个地测试了它们。他们没有工作。因此,显然嵌套列表在引用可拖动对象时产生了问题。我确信
:outerList:innerList
是不正确的。因此,我现在正在尝试其他增量方法来正确访问引用。那么,使用单个列表(非嵌套)数据列表作为源,其中包含一个表单,并使用include就可以了?如果是这样,你可以改进标题,因为你用更好的方式缩小了问题的范围。。。你是什么版本的?如果是6.1版本,可以尝试从源代码创建6.2版本的快照,如果仍然失败,您是否可以创建一个干净的小快照…如果您在更大的“范围”上使用表单,而不是在每个重复项的数据列表中使用表单,会怎么样?ui:fragment相关吗?您确定通过
:outerList:innerList
引用数据源是正确的吗?如果您不“包括”它,而是直接使用它,那么它是否有效?如果我删除该表单并仅使用
datasource=“outerList”
它将在设置数据时开始调用该方法。Rest组合不起作用
ui:fragment
与我的情况相关,因为这是我发布的一小块html,视图中有更多的逻辑。我不确定
:outerList:innerList
是否正确。这就是我需要帮助的地方。链接数据源为什么要删除表单并更改数据源?这不是我想要测试的。。。一个接一个地试试看。。。干杯沙哈。。我确实一个接一个地测试了它们。他们没有工作。因此,显然嵌套列表在引用可拖动对象时产生了问题。我确信
:outerList:innerList
是不正确的。因此,我现在正在尝试其他增量方法来正确访问引用。那么,使用单个列表(非嵌套)数据列表作为源,其中包含一个表单,并使用include就可以了?如果是这样,你可以改进标题,因为你用更好的方式缩小了问题的范围。。。你是什么版本的?如果它是6.1,也许可以尝试从源代码创建一个6.2快照,如果仍然失败,您可以创建一个干净的小快照。。。