gpt4 book ai didi

JSF:将页面动态包含到 primefaces 对话框中

转载 作者:行者123 更新时间:2023-12-02 06:34:16 27 4
gpt4 key购买 nike

我想使用 ui:include 从另一个页面包含 primefaces 对话框的内容。包含的页面必须根据用户单击的按钮设置为动态。我使用了来自 JSF dynamic include using Ajax request 的 BalusC 的非常有用的答案.

它在示例中工作得非常好。但是如果我使用 p:dialog 而不是 h:panelGroup:

<h:form>
<f:ajax render=":dialog">
<p:commandButton value="page1" action="#{productBean.setDialogPage('/page1.xhtml')}" oncomplete="dialogWidget.show()"></p:commandButton>
<p:commandButton value="page2" action="#{productBean.setDialogPage('/page2.xhtml')}" oncomplete="dialogWidget.show()"></p:commandButton>
</f:ajax>
</h:form>
<p:dialog id="dialog" widgetVar="dialogWidget" >
<ui:include src="#{productBean.dialogPage}" />
</p:dialog>

第一个问题:有时,在出现对话框之前我必须点击一个按钮几次。它似乎不遵循任何模式,而是一种随机效应。有时我需要点击按钮两次,有时我需要点击按钮四次。

第二个问题:有时,对话框出现的不是所选页面,而是旧页面。当我关闭对话框并再次选择时,将加载当前页面。这似乎也是一种随机效应。

为什么我会遇到这个对话框问题?

最佳答案

嘿,我不知道你为什么要使用这种模式来显示动态对话框,对我来说,我喜欢使用这种模式:

<h:form>
<p:commandButton value="page1"
actionListener="#{productBean.setDialogPage('page1')}" oncomplete="PF('dialogWidget').show()" update="dialog"/>
<p:commandButton value="page2"
actionListener="#{productBean.setDialogPage('page2')}" oncomplete="PF('dialogWidget').show()" update="dialog"/>
</h:form>

<p:dialog id="dialog" widgetVar="dialogWidget">
<ui:include src="/#{productBean.dialogPage}.xhtml" />
</p:dialog>

和:

page1.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">

<h:form>
<!-- your code -->
</h:form>
</ui:composition>

它工作正常:)

关于JSF:将页面动态包含到 primefaces 对话框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23994750/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com