Я пытаюсь использовать перетаскивание праймеров на UIComponent
, но DragDropEvent
возвращает NullPointerException
. Что я, вероятно, делаю неправильно.Primefaces DragDropEvent на JSF UIComponent возвращает java.lang.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>
StackTrace
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 перетаскивать доктор op. On-drop, я хочу, чтобы inputTextArea отображался. Пожалуйста, если есть лучший способ сделать это, я буду признателен. Благодарю.
Thank. Пожалуйста, у вас есть рекомендации по последней части вопроса. (Display inputtextarea ondrop) –
Хм, почему вы просто не справляетесь со всем событием на стороне клиента? Например. удалите атрибут «rendered» и добавьте «style =» display: none »и идентификатор. Затем просто сделайте что-то вроде 'onDrop = '$ (' # theid '). Css (' display ',' inline ');". –