Основы Диалога Primefaces

Я создаю диалоговое окно, которое затем можно использовать на нескольких родительских экранах. (т. е. поиск клиентов).

для диалогового окна поиска клиентов я создал следующие объекты.

  1. SearchCustomerDlg.xhtml
  2. SearchCustomerMb.java
  3. DialogHanglerCustomerSearch.java
  4. Объекты уровня DAO и Service, которые идут в базу данных Oracle и ищут клиентов на основе критериев, введенных в диалоговом окне.

У меня есть родительская страница xhtml со своим собственным управляемым компонентом, и я использую DialogHandlerCustomerSearch, чтобы передать выходные данные диалогового окна поиска.

Однако я также хочу передать входной параметр в диалоговое окно, чтобы диалоговое окно могло считывать значения и задавать некоторые критерии поиска при его открытии.

Может кто-нибудь может мне помочь, пожалуйста? Я знаю, что при запросе диалогового окна есть поле параметров.

    Map<String, List<String>> params = new HashMap<String, List<String>>();
    List<String> values = new ArrayList<String>();
    values.add("test");
    params.put("bookName", values);  
RequestContext.getCurrentInstance().openDialog("/ui/cor/SearchCustomerDlg", dialogConfig, params);

Тем не менее, когда я попытался прочитать значение параметра в SearchCustomerMb, но это показывает значение как ноль. Поэтому я предполагаю, что он не проходит правильно или я делаю что-то не так.

Кроме того, как я могу передать параметр непосредственно из PlDigitalSalesrpt.xhtml, который затем вызывает dialogHandlerCustomerSearch???

Пожалуйста, помогите... Я посмотрел на приведенный ниже пример, но это не сработало.

http://www.javacodegeeks.com/2015/01/primefaces-opening-external-pages-in-dynamically-generated-dialog.html

1 ответ

Решение

SearchCustomerDlg.xhtml может иметь:

<f:metadata>
    <f:viewParam name="bookName" value="#{searchCustomerMb.bookName}"/>
</f:metadata>

а затем в SearchCustomerMb.java вам нужно получить getBookName и установить BookName

Другие вопросы по тегам