現在、JSF 2 アプリケーションを開発しており、OpenFaces を使用しています。
私たちが気付いている「断続的な」問題の 1 つは、マネージド Bean メソッドが「時々」呼び出されないことです。
例えば:
<o:commandLink onclick="wait();" action="#{createAccountContractManagedBean.executeSave}"
execute="panGrp_createAccountContractMainTabLocal"
render="panGrp_createAccountContractLocalErrorMessages label_contractNumber pnlGrp_editCustomerGroup"
styleClass="buttonOrange"
onajaxend="wait();setTabFocus('inpHdn_contractErr','tabPane_MainLocal',3);return false;">
<span>
<h:outputLabel value="#{message['application.common.button.saveandcontinue']}"/>
</span>
</o:commandLink>
wait()
リクエストが現在処理中であることを示すモーダル ダイアログを表示する JavaScript 関数です。
setTabFocus()
現在の保存リクエストが成功した場合に新しいタブにフォーカスを設定する JavaScript 関数です。
public void executeSave() {
if (getLoggingService().isDebugLevelEnable()) {
getLoggingService().debug(this, "executeSave");
}
// ...
}
問題は、マネージド Bean メソッドexecuteSave()
がまったく起動しない場合があることです。ログ メッセージまたはエラーはありません。
しかし同時に、onajaxend()
メソッドは常に起動し、エラーがないため、フォーカスを次のタブに切り替えます。
wait();
メソッドとメソッドを削除してみましたsetTabFocus();
。
すべてのコンポーネントは同じ<h:form>
要素にあり、複数のフォームはありません。
マネージド Bean メソッドがエラー トレースなしで実行されない場合、考えられる原因は何ですか?
JSF
<h:xxx>
コンポーネントと<o:xxx>
コンポーネントを同じ形式で混在させると、問題が発生する可能性がありますか?混入して問題
<o:ajax>
を<f:ajax>
引き起こしますか?多くの OpenFaces ポップアップを含む複雑なフォームで、ajax 機能が誤動作する可能性はありますか?