2017-05-11 7 views
0

私はapyを呼び出し、nullでレスポンスがあるかどうかを調べる視覚的なJavaクラス(コンポーネント内に含まれるJavaクラス)を持っています。 nullの場合は、エラーコンポーネントを呼び出す必要があります。応答ステータスを404に設定すると、その行を実行する前に応答が200となっているため、応答ステータスが404として設定されています。この場合、エラーコンポーネントを呼び出す方法。 注:URLをerror.htmlにリダイレクトしようとしましたが、適切な解決策ではありません。視覚的なJavaからエラーコンポーネントを呼び出す

答えて

0

レスポンスにはすでにコミットされたコンテンツがある可能性があるため、レスポンスのステータスをコンポーネント/ビューからリダイレクトまたは変更することは、一般に悪いことです。何かをすることにコミットされる前に、404を返し、リモートAPIはnullを返した場合、要求処理の開始時にリモートAPIを呼び出して、

  1. :あなたはどちらかにあなたのアプリケーションを再設計することがあります

    応答。

    • 適切な応答をレンダリング、ヌル応答が期待されている場合に/いくつかのケースで許可:
    • のいずれかによって、リモートAPIからヌル応答を処理します。
    • null応答が期待されない場合に備えて、ステータス500になる例外がスローされます。
+0

ありがとう。しかし、あなたが「要求処理の始めにリモートAPIを呼び出す」と言うと、私は混乱します。このフローは次のようなものです 1.間違ったページが呼び出されていません 2.親のページのコンポーネントに移動します 3.ページコンポーネントは、ページが存在するかどうかを確認するapiを呼び出す視覚的なJavaクラスを持っていますこれらのページは動的ページです) 4.存在する場合は404エラーページにリダイレクトしない場合は表示 respがすでにコミットされているため、手順4で応答ステータスを設定できません。私はapiを呼び出してその存在を知ることができるので、私はステップ3でそれを行うことはできません。 あなたはどのステップを提案しますか? –

+0

@SkepticScribblerおそらくあなたの状況では、要求を処理/傍受し、動的API /コンテンツをチェックする特別なサーブレットやフィルタを持つことができます。他の考え方は、何かがレンダリングされる前に呼び出され、リダイレクトを処理できるカスタムページヘルパー/ Use Objectを定義することです。 – Vlad

+0

あなたがいくつかの記事/ URLを指すことができれば、本当に役に立ちます。私がこれを初めて知ったとき、私はあなたが何を言っているのか理解していましたが、それをどのように実装するのか分かりません。 2番目のアイデアは手元の状況に適していますが、getResponse()。sendRedirectを実行しているときは正常に動作しますが、発生してはならないURLが変更されます。とにかく今まであなたの時間と反応に感謝しています! –

関連する問題