如何在 App Engine, Java 上实现自定义 404 错误页面?

嗨,我正在尝试在应用引擎上为404找不到错误设置静态错误页面。

根据 https://developers.google.com/appengine/docs/java/config/webxml#Error_Handlers:它说404无法定制。

根据:https://developers.google.com/appengine/docs/java/config/appconfig#Custom_Error_Responses 它似乎也不支持404。

但是,https://groups.google.com/forum/?fromgroups=#!topic/google-appengine-java/3C-pY5ta2HQ,似乎建议可以自定义404错误页面。我现在很困惑。


答案 1

我意识到在本地开发服务器上运行应用程序时会发生此问题。但是,当我将应用程序部署到应用程序引擎时。我可以看到使用web.xml配置的404错误页面。感谢您的帮助。


答案 2

为什么不使用 Java EE <错误页面>条目来实现这些目的呢?

在您的网络中.xml:

<error-page>
    <error-code>404</error-code>
    <location>/app/error/404</location>
</error-page>
....
<error-page>
    <error-code>500</error-code>
    <location>/app/error/500</location>
</error-page>

你可以把它和Spring结合起来,得到一个通用的错误控制器,比如:

....   
@Controller
public class ErrorController {

@RequestMapping(value = "/error/{errorCode}")
public final String errorCode(
        @PathVariable("errorCode") final String errorCode,
        final ModelMap modelMap) {
    modelMap.put("statusCode", errorCode);
    return "redirect:/ui/error.htm";
}

和你的类似 jsp 的文件:

<h2>Error!!!</h2>
....
<h3>Status code: #{param.statusCode}</h3>

希望这有帮助。


推荐