2

GWT 2.4 Web アプリケーションがあります。HTTP エラーコードを次の方法で処理したいと考えています。コードに応じて、ユーザーを異なる GWT ページに送信します。はい、GWT には動的ページが 1 つしかないことを理解しているので、これには Places を使用したいと考えています。次の行を web.xml に追加しました。

   <error-page>
        <error-code>404</error-code>
        <location>/index.html#error:404</location>
    </error-page>

これにより、ユーザーが GWT アプリにリダイレクトされ、その場所に対応するビューが表示されるはずだと思いました。しかし、これはまったく機能しません。存在しないリソースにアクセスしようとすると、空白のページが表示されます。

場所自体は存在し、../index.html#error:404 URL 経由で問題なくアクセスできます。したがって、問題はサーバー側にあります。サーバーは、実際には存在しないページにリダイレクトできないのでしょうか?

では、GWT で 404 やその他のエラーを処理するにはどうすればよいでしょうか?

4

2 に答える 2

0

Google App Engine を使用していますか? そうである場合、カスタム 404 ハンドラーを定義することはできません。ここのドキュメントを見てください:

https://developers.google.com/appengine/docs/java/config/webxml#Error_Handlers

とにかく、それ以上の他のすべてのマッピングが一致しなかった後に実行される /* (すべてをキャッチ) サーブレット マッピングを定義する必要があります。そのサーブレットで、カスタム ページにリダイレクトする必要があります。

<!-- ERROR 404 replacement -->
<servlet>
    <servlet-name>missingPageServlet</servlet-name>
    <servlet-class>com.myproject.MissingPageServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>missingPageServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

それが役に立ったことを願っています。

于 2012-11-30T06:35:38.360 に答える
0

エラー処理とリダイレクトは、サーバーからデータを取得するときにクライアント側で発生する必要があります。

その通信を処理するために RequestBuilder または RequestFactory を使用していますか? その場合は、RequestBuilder の応答ステータスで 404 を検出し、placeController.goTo(new ErrorPlace(404));(または、場所を設定している) を使用できます。

于 2012-07-30T20:51:53.347 に答える