【发布时间】:2015-04-15 14:55:36
【问题描述】:
我正在尝试在 UIComponent 上使用 primefaces 拖放,但 DragDropEvent 返回 NullPointerException。我可能做错了什么。
@Named(value = "dynaComponentController")
@RequestScoped
公共类 DynaComponentController {
private UIComponent component = new HtmlPanelGroup();
private boolean checker = false;
public void onComponentDrop(DragDropEvent event) {
component = event.getComponent();
int i = component.getChildCount();
if(i > 0){
checker = true;
}
}
我的观点是
<h:form prependId="false">
<h:panelGroup id="drop" layout="block" style="height:150px; width:300px;" styleClass="ui-widget-content">
<p> Drop Here </p>
<p:droppable for="drop" onDrop="#{dynaComponentController.onComponentDrop(event)}"/>
</h:panelGroup>
<br />
<h:panelGroup id="drag" layout="block" style="height:150px;width:300px;" binding="#{dynaComponentController.component}">
<h:outputLabel value="Drag Me" rendered="#{dynaComponentController.checker == false}"/>
<h:panelGroup rendered="#{dynaComponentController.checker == true}">
<h:inputTextarea id="complainID" />
</h:panelGroup>
<p:draggable for="drag"/>
</h:panelGroup>
堆栈跟踪
java.lang.NullPointerException
at org.morph.bean.DynaComponentController.onComponentDrop(DynaComponentController.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at javax.el.ELUtil.invokeMethod(ELUtil.java:308)
at javax.el.BeanELResolver.invoke(BeanELResolver.ja
请考虑使用 primefaces 拖放功能将面板拖到另一个面板上。在放置时,我希望显示 inputTextArea。 请如果有更好的方法来解决这个问题,我将不胜感激。谢谢。
【问题讨论】:
标签: jsf-2 primefaces managed-bean uicomponents