1

現在、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>要素にあり、複数のフォームはありません。

  1. マネージド Bean メソッドがエラー トレースなしで実行されない場合、考えられる原因は何ですか?

  2. JSF<h:xxx>コンポーネントと<o:xxx>コンポーネントを同じ形式で混在させると、問題が発生する可能性がありますか?

  3. 混入して問題<o:ajax><f:ajax>引き起こしますか?

  4. 多くの OpenFaces ポップアップを含む複雑なフォームで、ajax 機能が誤動作する可能性はありますか?

4

1 に答える 1

0

マネージド Bean メソッドがエラー トレースなしで実行されない場合、考えられる原因は何ですか?

hereで説明されているように、ロギングをオンにしてみることができます。また、ブラウザ デバッガ ツールを使用してサーバーからの ajax 応答を確認することもできます。おそらくエラー情報が含まれている可能性があります。

JSF コンポーネントとコンポーネントを同じ形式で混在させると、問題が発生する可能性がありますか?

いいえ、一般的に OF は JSF と完全な互換性があります。いくつかの非常に複雑なケースでは、いくつかの問題が発生する可能性がありますが、あなたが説明した状況はそれらの1つではないと思います.

混合して問題を引き起こしますか?

混ぜて使うのが普通です。

多くの OpenFaces ポップアップを含む複雑なフォームで、ajax 機能が誤動作する可能性はありますか?

もちろん、OF や JSF にバグがある可能性もありますが、通常、そのような状況ではいくつかのエラー情報が表示されます。また、最新のナイトリー ビルドに更新することもできます。または、OF サポート フォーラムに問題を投稿してください。

于 2013-11-25T10:28:49.297 に答える