1

JSF と PrimeFaces を使用して課金アプリケーションを開発しようとしています。基本的な機能では、いくつかのアイテムを請求書に追加し、請求書が完成したら更新ボタンをクリックする必要があります。印刷された請求書には、バッキング Bean の SettBill メソッドの最後に生成される BillId などの詳細が含まれている必要があります。印刷後、アプリケーションが新しい請求書の準備ができるように、1 ページで行う必要があります。

次のように開発しましたが、メソッドの印刷と実行が期待どおりに行われません。

 <p:commandButton value="Settle" action="#{billController.saveSelected()}" ajax="false" >
     <p:printer target="pDetails"  /> 
 </p:commandButton>

Ajaxなしで使うと、印刷部分はOKなのですがアクションが実行されません。Ajax で使用すると、コマンドは実行されますが、印刷は機能しません。アクションの代わりにアクションリスナーを使用しましたが、結果は同じです。

<p:commandButton value="Settle" actionListener="#{billController.settleBill}" ajax="false" >
    <p:printer target="pDetails"  /> 
</p:commandButton>

バッキング Bean メソッドを実行すると同時に、バッキング Bean メソッドが完全に実行された後に生成される Bill Id などの最終値を出力するにはどうすればよいですか。すべての請求書の後で画面が次の請求書の準備ができるように、単一のページでそれを達成したいと考えています。

前もって感謝します。

4

2 に答える 2

1

Ajaxなしで使用する場合、印刷とアクションを機能させるには、次のコードを使用する必要があります。

<p:commandButton value="Settle" actionListener="#{billController.settleBill}">
<f:ajax execute="@this"/>
    <p:printer target="pDetails"  /> 
  </p:commandButton>

そして、settleBill メソッドでは、以下のように ActionEvent で宣言します。

public void settleBill (ActionEvent actionevent) {}
于 2014-05-21T15:18:11.907 に答える
0
<p:remoteCommand name="rc"  actionListener="#{movimentoBean.test}" />

           <p:commandButton value="Imprimir" type="button" 
              icon="ui-icon-print" onclick="rc();PF('visDialog').hide()"
              style="display:block;margin-bottom: 20px">
              <p:printer target=":formMovimentos:etiqueta" />
           </p:commandButton>

public void test(ActionEvent actionevent) {}

于 2014-08-08T00:50:54.077 に答える