ユーザーが段階的にデータを入力できるフォームを作成しようとしています。 FlowScopedソリューションを試した後、今ではPrimefacesウィザードを実装しようとしています。プライムフェースウィザードはonclickメソッド呼び出しを実行しません
説明:
マイmain.xhtml:私は、タブ間を移動するためのボタンがあり、インクルードファイル内
<h:form id="antragErfassenForm">
<p:wizard showStepStatus="false" widgetVar="wiz" showNavBar="false" >
<p:tab id="basic_decision_tab" title="Grundsatzentscheidungen">
<ui:include src="/eAkte/basic_decisions.xhtml" />
</p:tab>
<p:tab id="driving_ways_tab" title="Fahrtwegvarianten">
<ui:include src="/eAkte/driving_ways.xhtml" />
</p:tab>
</p:wizard>
</h:form>
。 最初のタブ「basic_decisions.xhtml」の次のボタン(最初のタブのデータを評価する)callDrivingWays()から第2のタブは、異なるコンテンツを有する結果に応じ
<p:commandLink value="Next" onclick="#{eAkteController.callDrivingWays()}; PF('wiz').next();" />
。
私の問題:最初のタブの[次へ]ボタンをクリックしたときに
メソッドcallDrivingWays()が呼び出されていません。代わりに、最初のタブがロードされるときに既に呼び出されています。だから私はいつも空の第2ページを持っている。
ボタン内のactionListener、またはウィザードのflowListener内でメソッド呼び出しcallDrivingWays()を切り替えようとしました。その後、メソッドは正しい時刻に呼び出されますが、次のボタンをクリックすると、コンポーネントIDが既に使用されているという例外が発生します。
誰にも提案はありますか?
onclick属性は、サーバー側のメソッドではなく、javascriptを実行するための属性です。ほとんどの場合、ブラウザの開発者ツールでエラーが発生する可能性があります – Kukeltje
したがって、メソッドをactionListenerに戻して、二重コンポーネントIDの例外を修正する必要がありますか? – filla2003
はい、確かに....そして新しい質問をしてください(これは実際には既存のものと重複しています。 – Kukeltje