Jsf 2 使用primefaces确认对话框组件显示来自托管bean的消息
在我的页面中,我试图在单击按钮后显示确认对话框。在确认对话框中,我使用属性消息来显示它,单击按钮后此消息将被取值。所以我就这样做了:Jsf 2 使用primefaces确认对话框组件显示来自托管bean的消息,jsf-2,xhtml,primefaces,Jsf 2,Xhtml,Primefaces,在我的页面中,我试图在单击按钮后显示确认对话框。在确认对话框中,我使用属性消息来显示它,单击按钮后此消息将被取值。所以我就这样做了: <p:commandButton value="Delete" update="testPlanetree" id="deleteBtn" disabled="#{projectTestManagementMB.disable}" oncomplete="deleteConfirmation.show()" action="#{projec
<p:commandButton value="Delete" update="testPlanetree" id="deleteBtn"
disabled="#{projectTestManagementMB.disable}" oncomplete="deleteConfirmation.show()"
action="#{projectTestManagementMB.testFn}"/>
<p:confirmDialog id="confirmDialog" message="#
{projectTestManagementMB.deleteConfirmationMsg}"
header="Confirming Deleting Process" severity="alert"
widgetVar="deleteConfirmation">
<p:commandButton id="confirm" value="Yes Sure" update="messages"
oncomplete="deleteConfirmation.hide()" />
<p:commandButton id="decline" value="Not Yet"
onclick="deleteConfirmation.hide()" type="button" />
</p:confirmDialog>
问题是deleteConfirmationMsg
从不接受值“do you want delete…”(始终为空)
任何想法都将受到欢迎试试这个我应该可以:
<p:commandButton value="Delete" update="testPlanetree" id="deleteBtn" actionListener="#
{projectTestManagementMB.testFn}"
disabled="# {projectTestManagementMB.disable}"
oncomplete="deleteConfirmation.show()" />
在返回带有表单和对话框的页面的第一个HTTP请求中,
已经生成了它的HTML表示。它只是由CSS隐藏,应该由JS显示/隐藏。当您随后在bean操作方法中更改确认消息时,只要您不进行ajax更新,它就不会反映在生成的HTML输出中
因此,为了反映更改后的消息,您需要在客户端更新
的HTML表示,然后再将其显示在oncomplete
中。为此,您可以使用命令按钮的update
属性,该按钮应显示对话框
<p:commandButton ... update="confirmDialog testPlanetree">
确保您的setter与“setDeleteConfirmationMsg”一模一样-sensitive@D3mon:为什么错误的setter名称会导致此问题?更重要的是,在这种情况下,setter实际上是强制性的吗?这到底是如何回答这个问题的?你没有以任何方式具体解释/描述解决方案。您只显示了一段代码,它与OP的代码非常相似,唯一的变化是您使用了actionListener
而不是action
。为什么你认为这能解决OP的具体问题?为什么你不以任何方式解释这个解决方案,我们必须根据比较代码来猜测它?无论是谁对这个不明确的答案投了赞成票,都应该重新考虑这个问题。
<p:commandButton ... update="confirmDialog testPlanetree">