Я скачал PrimeFaces showcase-6.2.war и развернул его на JBoss WildFly 12.0.0. Финальный запуск в EE 8. Пример перетаскивания «DataTable» работает отлично.
Для теста / PoC я воспроизвел пример витрины (точно), просто используя некоторые из моих собственных данных. Который заполняет и отображает в DataTable.
Однако, когда я перетаскиваю элемент в «Выбранную панель», я получаю ошибку:
SEVERE [javax.enterprise.resource.webcontainer.jsf.context] (по умолчанию
задача-1) javax.el.MethodNotFoundException: метод не найден: класс
com.notifywell.controller.NOTiFYwellController.onIngredientDrop (org.primefaces.event.DragDropEvent)
XHTML, который вызывает это:
<p:droppable for="fieldsetSelectedIngredients" tolerance="touch" activeStyleClass="ui-state-highlight" datasource="dataTableAvailableIngredients" onDrop="handleDrop">
<p:ajax listener="#{nOTiFYwellController.onIngredientDrop}" update="dropArea dataTableAvailableIngredients" />
</p:droppable>
PrimeFace ShowCase:
<p:ajax listener="#{dndCarsView.onCarDrop}" update="dropArea availableCars" />
Мой Java 'backing bean' с методом '' onIngredientDrop ":
@Model
@Path("/")
@ViewScoped // OmniFaces 3.1
@Named("nOTiFYwellController")
//@ManagedBean(name="nOTiFYwellController") // Deprecated
public class NOTiFYwellController implements Serializable {
.....
public void onIngredientDrop(DragDropEvent ddEvent) {
Ingredient ingredient = ((Ingredient) ddEvent.getData());
logger.info("***** onIngredientDrop ddEvent = {}", ddEvent.getData());
}
}
PrimeFace ShowCase:
public void onCarDrop(DragDropEvent ddEvent) {
Car car = ((Car) ddEvent.getData());
droppedCars.add(car);
cars.remove(car);
}
Ошибка связана с тем, что p:ajax listener
не передает параметр DragDropEvent.
В примере PF ShowCase параметр не требуется. Как я могу получить DragDropEvent в своем бэке?
Если я создаю метод onIngredientDrop без параметров, он вызывается и отображает (исправленное) сообщение журнала.
Мое окружение:
PrimeFace 6.2.3 JSF 2.3 JBoss WildFly 12.0.0.FINAL Java версия
1.8.0_66 (сборка 1.8.0_66-b17) Google Chrome Версия 66.0.3359.117 (официальная сборка) (64-разрядная версия) macOS High Sierra 10.13.4
ТИА