2015-08-24 21 views
1

即使如此我的問題是非常相似的另一個問題,它不完全相同。PrimeFaces DragDropEvent NullPointerException

我現在的XHTML看起來是這樣的:

<p:dataGrid id="availableAttachments" value="#{orgUnitCRBean.orgUnit.attachments}" var="attachment" varStatus="status"> 
    <p:draggable revert="true" for="attachmentButton#{status.index}" disabled="false" readonly="false" rendered="true"/> 
    <p:panel toggleable="false" disabled="false" id="attachmentButton#{status.index}" readonly="false" rendered="true" title="#{attachment.fileName}" value="#{attachment.fileName}"> 
     <p:commandButton ajax="false" disabled="false" readonly="false" rendered="true" value="#{attachment.fileName}"> 
      <p:fileDownload value="#{orgUnitCRBean.handleFileDownload(attachment)}"/> 
     </p:commandButton> 
    </p:panel> 
</p:dataGrid> 
<p:droppable activeStyleClass="ui-state-highlight" dataSource="availableAttachments" tolerance="touch" for="attachmentPanel" disabled="false" readonly="false" rendered="true"> 
    <p:ajax listener="#{orgUnitCRBean.handleFileDelete}" update="@form" disabled="false" readonly="false" rendered="true"/> 
</p:droppable> 

和bean是這樣的:

/* 
* Delete an attachment. 
*/ 
public void handleFileDelete(DragDropEvent ddEvent) { 

Attachment attachment = ((Attachment) ddEvent.getData()); 
System.out.println("Attachment: " + attachment); 
UUID id = attachment.getId(); 
String idToBeDeleted = attachment.getId().toString(); 
} 

的DragDropEvent不包含任何數據,因此我在這裏得到一個NullPointerException。從我的角度來看,我非常接近PrimeFaces的展示。在網上發現了一些類似的問題,但沒有合適的答案。也許有人知道該怎麼做,在這裏?

回答

0

還是不知道,爲什麼數據Object爲null,但我的解決方法是現在DragDropEvent的「dragId」,它可以用來確定哪個對象已被拖放到拖放區域。