我正在尝试提交位于主要对话框<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;
}
答案 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
。
答案 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