Jsf 2 JSF UIComponent上的Primefaces DragProperty返回java.lang.NullPointerException

Jsf 2 JSF UIComponent上的Primefaces DragProperty返回java.lang.NullPointerException,jsf-2,primefaces,managed-bean,uicomponents,Jsf 2,Primefaces,Managed Bean,Uicomponents,我试图使用primefaces在UIComponent上拖放,但DragDropropEvent返回NullPointerException。我可能做错了什么 @Named(value = "dynaComponentController") @RequestScoped 公共类DynaComponentController{ private UIComponent component = new HtmlPanelGroup(); private boolean checker = fals

我试图使用primefaces在
UIComponent
上拖放,但
DragDropropEvent
返回
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>
请考虑使用primefaces拖放功能将一个面板拖到另一个面板上。拖放时,我希望显示InputExtArea。 如果有更好的方法,我将不胜感激。谢谢。

简单。
onDrop
需要一个客户端回调。您只能在此处使用JavaScript函数。在此处放置Bean方法将只调用它(使用未定义的“事件”,因此
null
),就像将
{dynaComponentController.onComponentDrop(event)}
放置在标记之外一样


您可以考虑通过<代码> P:ReltEcMoMand <代码>调用Bean方法,并在您调用的JavaScript函数中包装该调用,从代码> OnLoad .< /P>谢谢。请您对问题的后面部分有任何建议。嗯,为什么不完全在客户端处理事件呢?例如,删除

rendered
属性,添加一个
style=“display:none”
和一个id。然后只需执行类似于
onDrop=“$('#theid').css('display','inline');“
的操作即可。
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