没有在PrimeFaces中调用param的函数

时间:2016-09-02 12:38:00

标签: jsf primefaces

我有一个带有多个Dialog的表单,其中一个调用带参数的函数,但我不知道为什么不工作。其他对话框工作正常。带参数的对话框:

<p:dialog widgetVar="windowsConfirmOperation" position="center middle" resizable="false"
header="¡Warning!" closable="false" showEffect="fade" hideEffect="fade" 
id="idWindowsConfirmOperation" modal="true">
<p:panel>
     <div class="DispBlock Responsive100">
        <p:outputLabel value="Are you sure?" 
            escape="false"/>
     </div>
 </p:panel> 
 <div class="DispBlock ui-contenedor-botones-accion Fright"> 
     <p:commandButton value="YES"                            
         oncomplete="PF('windowsConfirmOperation').hide();"
        update="@form" process="@form"
        action="#{queryView.confirmOperation('true')}">
     </p:commandButton> 
     <p:commandButton value="NO"                            
         oncomplete="PF('windowsConfirmOperation').hide();"
        update="@form" process="@form" 
        action="#{queryView.confirmOperation('false')}">
     </p:commandButton>
 </div>
</p:dialog>

我的视图类叫QueryView:

@SessionScoped
@ManagedBean
public class QueryView {        

        ....

        public void confirmOperation(String confirm) {
        if ("true".equals(confirm)) {
            doSomeThing();
        }
    }       
}

我调试但对话框从不调用该函数。我将Boolean的参数更改为String但不起作用。我做错了什么?

问候。

1 个答案:

答案 0 :(得分:0)

最后我修改了我的逻辑,现在代码可以工作了。

<p:dialog widgetVar="windowsConfirmOperation" position="center middle" resizable="false"
header="¡Warning!" closable="false" showEffect="fade" hideEffect="fade" 
id="idWindowsConfirmOperation" modal="true">
<p:panel>
     <div class="DispBlock Responsive100">
        <p:outputLabel value="Are you sure?" 
            escape="false"/>
     </div>
 </p:panel> 
 <div class="DispBlock ui-contenedor-botones-accion Fright"> 
     <p:commandButton value="YES"                            
         oncomplete="PF('windowsConfirmOperation').hide();" process="@this"
        action="#{queryView.confirmOperation}">
     </p:commandButton> 
     <p:commandButton value="NO"                            
        onclick="PF('windowsConfirmOperation').hide();"
        >
     </p:commandButton>
 </div>
</p:dialog>
  1. 我改变了参数进程=&#34; @ form&#34;对于进程=&#34; @ this&#34; 。我只处理不是所有形式的按钮。
  2. NO按钮如何仅关闭对话框我更改了它。现在只使用onclick功能。
  3. 如何只有YES按钮才能使用该功能,现在我不需要参数。所以我的功能改为:

    public void confirmOperation() {
       doSomeThing();
    }
    
  4. 编辑: 如果我传递布尔也可以。

    action="#{queryView.confirmOperation('true'}">
    

    和java文件

    public void confirmOperation(Boolean something) {
       doSomeThing();
    }
    

    通过这些更改,我的代码运行正常。

    此致