在primefaces对话框中形成

时间:2014-08-12 14:31:34

标签: jsf jsf-2 primefaces

我正在尝试提交位于主要对话框<p:dialog/>的表单。

<h:form>
  <h:inputHidden value="123" id="domesticTransferId" />
  <p:commandButton action="#{domesticTransactionsController.addFirstSignerSignToTransaction}" 
                   id="domesticTransferFirstSignerSign" 
                   value="#{msg['label.FirstSignerSignature']}" 
                   icon="ui-icon-print"  
                   styleClass="myButton" >
  </p:commandButton>
</h:form>

这不是我期待被调用的方法。

public String addFirstSignerSignToTransaction() {
    try {
        System.out.println("DomesticTransactionsController.addFirstSignerSignToTransaction()");
    } catch(Exception e) {

    }
    return null;
}

3 个答案:

答案 0 :(得分:1)

制作p:dialog dynamic="true"appendToBody="true"并尝试在process="@form"上使用p:commandButton

正如您在评论中提到的,我认为domesticTransferId是托管属性,因此您必须使用value属性而不是id

 <h:inputHidden value="123" value="#{YOUR_MANAGED_BEAN.domesticTransferId}" />

现在它将调用domesticTransferId

的Setter

答案 1 :(得分:1)

您的命令按钮必须是:

 <p:commandButton action="#{domesticTransactionsController.addFirstSignerSignToTransaction()}" 
               id="domesticTransferFirstSignerSign" 
               value="#{msg['label.FirstSignerSignature']}" 
               icon="ui-icon-print"  
               styleClass="myButton" >

您忘记在方法名称的末尾添加()。

答案 2 :(得分:-1)

试试这个:

public String addFirstSignerSignToTransaction(ActionEvent event){
        System.out.println("DomesticTransactionsController.addFirstSignerSignToTransaction()");

    return "";
}

检查ManagedBean是否为javax.faces.bean.ManagedBean