在h:commandLink中单击JSF后调用两个方法

时间:2014-08-12 07:28:10

标签: jsf richfaces

我想在h:commandLink点击后在另外两个标签中调用两个方法。我使用JSF2和RichFaces 4.3.7。

<a4j:jsFunction name="print" 
    action="#{PDFReportsMBean.printSelectedScannedDoc}"
     status="waitStatus">
</a4j:jsFunction>

<h:commandLink value="${msg['page.dfeOper016form.button.printAll']}" 
    target="_blank"  
    disabled="#{not PDFReportsMBean.selectedAnyDocs}"
    action="#{PDFReportsMBean.prepareData}">
</h:commandLink>

<a4j:ajax event="click" oncomplete="print()"/>

此代码不起作用...... Coluld有人帮助我吗?

1 个答案:

答案 0 :(得分:0)

您无法使用Ajax执行文件下载,因为您正在尝试这样做。 Ajax使用了javascript,它具有文件写入权限的限制。您最好的机会是将整个逻辑包装在一个方法中,或者替代地使用actionListener

<h:commandLink value="${msg['page.dfeOper016form.button.printAll']}" 
    target="_blank"  
    disabled="#{not PDFReportsMBean.selectedAnyDocs}"
    actionListener="#{PDFReportsMBean.prepareData}" 
    action="#{PDFReportsMBean.printSelectedScannedDoc}"/>

另见: