Я новичок в JSF и Primefaces, мне нужно открывать диалоговое окно, содержащее какую-то информацию о результатах поиска, всякий раз, когда нажимается кнопка поиска. Ранее открытое диалоговое окно всегда должно отображаться, если пользователь не закроет его, поэтому я мог бы открыть несколько диалоговых окон.
Я использую приведенные ниже технологии, и моя проблема заключается в том, что я хочу использовать только один шаблон xhtml для диалога, который я вызываю, используя структуру диалога Primefaces. Есть идеи, как добиться того, чего я хочу?
- JBoss EAP 6.2
- Праймфейс 4.0
- JSF 2.2
У меня есть пример кода, над которым я пытаюсь работать как POC ниже. Он работает нормально. Я могу отобразить первое диалоговое окно, но я больше не знаю, как открыть другое диалоговое окно при повторном нажатии кнопки поиска.
home.xhtml
<div id="searchBtnDiv">
<p:commandButton id="queryNetworkElem" value="Search" ajax="true" actionListener="#{searchBean.querySubmit}" />
<p:commandButton id="advanceQuery" value="Advance Search" ajax="true" actionListener="#{searchBean.querySubmit}" />
</div>
SearchBean.java
@ManagedBean(name = "searchBean")
public class SearchBean{
...
public void generateSearchDialog(String searchParam) throws IOException{
System.out.println("opening dialog");
testMessage = "testing ";
RequestContext.getCurrentInstance().openDialog("test");
}
...
}
test.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<h:head>
</h:head>
<h:body>
<h1><p:outputLabel value="#{searchBean.testMessage}"/></h1>
<p:commandButton value="test" />
</h:body>
</html>