2 つの Java メソッドを起動するシーケンスを制御するアシスタントが必要です。JSFフォームでは、メソッド「GeneratePDF」を呼び出すcommandLinkがあり、ユーザーはPDFファイルをダウンロードできます。その後、SQL ステートメントを実行するメソッド「UpdateDataTable」への 2 回目の呼び出しで、JSF フォームの dataTable を更新します。
以下のコードでは、2 番目のメソッド「UpdateDataTable」は呼び出されず、呼び出される唯一のメソッドは「GeneratePDF」です。コードは次のとおりです。
<p:commandLink id="exporter" actionListener="#{exstaff.GeneratePDF}" ajax="false" oncomplete="updateremote()">
<h:graphicImage name="/images/PDF.png" alt="Export to PDF"/>
<p:fileDownload value="#{exstaff.pdfFile}"/>
</p:commandLink>
<p:remoteCommand id="updateremote" value="updateremote" actionListener="#{exstaff.UpdateDataTable}"/>
onComplete を onSuccess に変更しようとしましたが、残念ながら UpdateDataTable メソッドが呼び出されません。また、onClick を試してみたところ、最初に UpdateDataTable メソッドが起動され、次に GeneratePDf メソッドが起動されます。しかし、私の場合は、 GeneratePDF を起動してから UpdateDataTable を起動したいと考えています。