我有一个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和其他错误?
答案 0 :(得分:0)
当从服务器获取数据时,需要在客户端进行错误处理和重定向。
您是否使用RequestBuilder或RequestFactory来处理该通信?如果是这样,您可以在RequestBuilder响应状态中检测到404并使用placeController.goTo(new ErrorPlace(404));
(或者您设置了地点)
答案 1 :(得分:0)
您使用的是Google App Engine吗?如果是,则无法定义自定义404处理程序。看看这里的文档:
https://developers.google.com/appengine/docs/java/config/webxml#Error_Handlers
无论如何,无论如何,你需要定义你的/ *(catch all)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>
希望有所帮助。