PrimeFaces DragDropEvent NullPointerException
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 的展示。在网上找了几个类似的问题,但没有合适的答案。也许有人知道该怎么做,在这边?
仍然不知道,为什么数据对象为空,但我现在的解决方法是 DragDropEvent 的 "dragId",它可用于确定哪个对象已被拖放区域。
尽管如此,我的问题与另一个问题非常相似,但并不完全相同。
我当前的 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 的展示。在网上找了几个类似的问题,但没有合适的答案。也许有人知道该怎么做,在这边?
仍然不知道,为什么数据对象为空,但我现在的解决方法是 DragDropEvent 的 "dragId",它可用于确定哪个对象已被拖放区域。