マネージド Bean で問題が発生した場合にポップアップを表示したいという単純な問題があります。Bean は、getter/setter メソッドを使用して発生できる例外のリストを保持します。
xhtmlは次のようになります
<rich:panel>
<h:form>
<a4j:commandButton value="Compute Mission"
action="#{missionHandler.generateMissionFeasability}"
render="popupPanel">
</a4j:commandButton>
</h:form>
</rich:panel>
<rich:popupPanel id="popupPanel" modal="true" autosized="true"
resizeable="false" moveable="false" rendered="#{not empty missionHandler.exceptions}">
<f:facet name="header">
<h:outputText value="Exceptions raised during the processing " />
</f:facet>
<f:facet name="controls">
<h:outputLink value="#"
onclick="#{rich:component('popupPanel')}.hide();return false;">
</h:outputLink>
</f:facet>
</rich:popupPanel>
ご覧のとおり、Bean で generateMissionFeasibility メソッドを呼び出すコマンド ボタンがあります。このメソッドは (とりわけ) 例外リストに例外を追加します。
リストをチェックして(空かどうか)ポップアップを表示したい
上記のコードは、Bean のメソッドの終了前にポップアップがレンダリングされ、リストが最初は空であると思われるため、機能しません。