Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 使用primefaces确认对话框组件显示来自托管bean的消息_Jsf 2_Xhtml_Primefaces - Fatal编程技术网

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">