Этот ответ специально для icefaces (так как я читал в комментариях, что @Mel работает с icefaces.
Чтобы открыть всплывающее окно в icefaces:
<ace:dialog widgetWar="mydialog">
<h:outputText value="This is a dialog" />
</ace:dialog>
Затем вызовите это всплывающее окно в своем коде xhtml следующим образом: Например, я использую командную ссылку, которая при нажатии открывает всплывающее окно.
<h:commandLink onlick="mydialog.show()" action="#{myBean.doSomething()}" />
Чтобы показать сообщения в диалоговом окне:
<h:form id="myform">
<ace:dialog id="mydialog" widgetWar="mydialog">
<h:panelGrid columns="1" width="100%">
<ace:messages id="allMsgsAdd" initEffect="highlight" for="myform:mydialog" />
</h:panelGrid>
<h:outputText value="This is a dialog" />
</ace:dialog>
</h:form>
Затем вы можете использовать этот код для отправки сообщений на ace:message
, который вы только что создали.
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(SEVERITY_INFO, "My Message", null));
Обратите внимание, что SEVERITY_INFO является определенной константой FacesMessage. Вам потребуетсячтобы импортировать его. В зависимости от того, нужно ли пользователю показывать предупреждение или ошибку, вы можете импортировать эти
import static javax.faces.application.FacesMessage.SEVERITY_ERROR;
import static javax.faces.application.FacesMessage.SEVERITY_INFO;
Также обратите внимание на первый параметр метода addMessage()
. Вы заметите, что я передаю null
в качестве первого параметра. См. здесь , и вы обнаружите, что первым параметром является идентификатор клиента, что в основном означает, что клиенту, которому вы хотите отправить это сообщение. Если clientId равен нулю, это FacesMessageпредполагается не быть связанным с каким-либо конкретным экземпляром компонента.Таким образом, все диалоги сообщений на вашей странице получат эту ошибку / предупреждение.Если вы хотите, чтобы ТОЛЬКО показывал сообщение в диалоговом окне, вам нужно передать свой идентификатор клиента диалога вот так:
FacesContext.getCurrentInstance().addMessage("myform:mydialog", new FacesMessage(SEVERITY_INFO, "My Message", null));