Jsf 2 JSF UIComponent上的Primefaces DragProperty返回java.lang.NullPointerException
我试图使用primefaces在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
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