2

我有一个 GWT 2.4 网络应用程序。我想以下列方式处理 HTTP 错误代码:根据代码将用户发送到不同的 GWT 页面。是的,我知道 GWT 只有一个动态页面,所以我想为此使用 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

你在使用谷歌应用引擎吗?如果是,则无法定义自定义 404 处理程序。看看这里的文档:

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

无论如何,不​​管怎样,您需要定义您的 /* (捕获所有)servlet 映射,该映射在它上面的所有其他映射失败后执行。在该 servlet 中,您应该重定向到您的自定义页面。

<!-- 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 回答