2017-04-06 39 views
1

我的页面有一个列表,它将通过重定向查看记录的详细信息。现在我想打开一个对话框而不是去另一个页面。如何使用托管bean作为对话框

是否有可能重用该对话框的下一个托管bean?另外我希望该对话框自己处理自己的操作(不想将下一页的事件添加到我的母版页)。

下面的示例代码适用于可视性(添加组件),但不适用于这些操作。

<p:dialog id="dialog" widgetVar="dialogWidget" > 
     <ui:include src="#{nextPage.xhtml}" /> 
</p:dialog> 
+0

[如何通过导航菜单ajax-刷新动态包含内容? (JSF SPA)](http://stackoverflow.com/questions/7108668/how-to-ajax-refresh-dynamic-include-content-by-navigation-menu-jsf-spa) –

+0

关键是,ui: include是一个facelet模板标签,在构建视图时被处理,但所有组件的处理/更新都会在稍后发生。 –

回答

0

请注意,使用Primefaces对话框时,表单必须在对话框中声明。

<p:dialog id="dialog" widgetVar="dialogWidget" > 
    <h:form > 
     <ui:include src="#{nextPage.xhtml}" /> 
    </h:form> 
</p:dialog> 

还试图避免表单重叠,如果没有,您将面临执行操作时的问题。

+1

不,只有当使用appendTo的值为@body时,您需要确保该对话框包含表单(或者当生成的对话框移出客户端上的表单时类似)。在其他情况下,这不是要求。 – Kukeltje