2016-08-25 14 views
0

私は次のコードでPrimeFaces 5.3を使用しています:P:selectBooleanCheckBox Pの内部では動作しません:ダイアログ

<p:dialog id="dlg1" appendTo="@(body)" header="Confirm Dialog" widgetVar="dlg1" modal="true"> 
         <h:form id="dialogform"> 
         <h:outputText id="confirmlabel" value="Are you Sure you want to #{reportRunnerNamedBean.currentCommand} ?" /> 
         <br/> 
         <center> 
          Check to send only missed emails:<p:selectBooleanCheckbox id="sendOnlyMissedBox" value="#{reportRunnerNamedBean.sendMissedOnly}"></p:selectBooleanCheckbox><br/> 
          <p:commandButton id="yesButton" value="Yes" action="#{reportRunnerNamedBean.runCurrentCommand()}" onstart="startWait();PF('waitDialog').show();" oncomplete="PF('waitDialog').hide();stopWait();" onclick="PF('dlg1').hide();" process="@form"/> 
          <p:commandButton id="noButton" process="@this" value="No" onclick="PF('dlg1').hide();"/> 

         </center> 

         </h:form> 
        </p:dialog> 

は何があって、sendMissedOnlyのためのバッキングBeanの値がfalseに設定されていません。私はデバッガを付けてこれを確認しました。私はボックスにajaxを追加しようとしましたが、それがチェックされているかどうかにかかわらず、毎回falseです。 p:selectBooleanCheckboxはダイアログでは機能しませんか?

答えて

0

私はこれを理解しました。ダイアログがフォームになっていたからです。ダイアログがフォーム内にあり、ダイアログ内にフォームがある場合、そのコンポーネントは処理されないようです。 JSF/primefacesはフォーム内に定義されたフォームやダイアログの複数のレイヤーを好きではないようです。同様の問題がある場合は、ダイアログがどのフォームの外でも定義されていることを確認してください。ダイアログを移動すると、コンポーネントへのパスが変更される可能性があります。これを解決する最も簡単な方法は、このupdate = ":#{p:component( 'compoment_name')}">のようなprimefacesの便利なp:componentタグを使用して、ツリー内のどこにコンポーネントがあるかに関係なく、 。

+0

常に、常に、常に[mcve]を作成してください。その際、問題の原因を見つけたり、他の人が助けてくれるようにしてください。 – Kukeltje

+0

これはJSFの問題ではありませんでした。基本的なHTMLの問題でした。 JSFの一時停止を行い、基本的なHTMLを最初に学ぶことをお勧めします。 – BalusC

+0

ありがとうございます。私は基本的なhtmlクラスは必要ありません。私はいくつかの大きなプロジェクトで編集中で、システム管理者、ネットワーク管理者、マネージャー、データベース管理者としての役割も果たしました。私は問題を見て、質問を投稿し、それを理解しました。私は文法に間違いがありました。それは本当のことですが、jsfの問題ではないかもしれないが、問題を見て数分後に修正しました。私は、質問に答えないコメントを投稿する方法を見逃していますが、代わりにパッシブな積極的なコメントを投稿することで何かを達成できます。あなたのコメントをありがとう。 – Rhino

関連する問題