Primefaces 对话框架

Primefaces Dialogue framework

我正在创建一个可以在多个父屏幕上使用的对话框。 (即客户搜索)。

我为客户搜索对话框创建了以下对象。

  1. SearchCustomerDlg.xhtml
  2. SearchCustomerMb.java
  3. DialogHanglerCustomerSearch.java
  4. 进入 Oracle 数据库并根据对话框中输入的条件搜索客户的 DAO 和服务层对象。

我的父 xhtml 页面有自己的托管 bean,我使用 DialogHandlerCustomerSearch 来传递搜索对话框的输出。

不过,我也想把入参传给对话框,让对话框在打开的时候读取值,预设一些搜索条件。

谁能帮帮我?我知道请求对话框的时候有params字段

    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

SearchCustomerDlg.xhtml 可能有:

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

然后在 SearchCustomerMb.java 中您需要 getBookName 和 setBookName