首页 > 解决方案 > 如何在 urlmappings 文件中映射 500 错误?

问题描述

为了测试 urlmappings 文件中的映射 500 状态。目标是显示自定义错误视图页面。我故意抛出异常来测试这个。

我已经设置了这个简单的代码。

import java.nio.file.AccessDeniedException

class HomeController {

    def index() {

        throw new AccessDeniedException('asd')
    }
}

我在 urlmappings 中映射 500 个代码

package exceptiontest
import java.nio.file.AccessDeniedException

class UrlMappings {

    static mappings = {
        "/$controller/$action?/$id?(.$format)?"{
            constraints {
                // apply constraints here
            }
        }

        "/"(controller: 'home', action: 'index')
        "404"(view:'/notFound')

        "500"(controller: "errors", action: "error403")

    }
}

这是错误控制器

package exceptiontest

class ErrorsController {

    def error403() {}

}

这是error403.gsp文件

<html>
<head>
    <title>Access denied!</title>
    <meta name='layout' content='main' />
</head>

<body>
<h1>Access Denied</h1>
<p>We're sorry, but you are not authorized
to perform the requested operation.</p>
</body>
</html>

它不显示此错误视图。为了使这个 urlmappings 适用于 500 个代码,我缺少什么?我很感激任何帮助。谢谢!

我正在使用 Grails 3.3.8。

标签: grailsgrails3

解决方案


您收到 500 错误还是收到 403?尝试将 403 添加到您的 URL 映射或在您的控制器中尝试以下操作以获取 500 错误。

导入静态 org.springframework.http.HttpStatus.*

渲染状态:INTERNAL_SERVER_ERROR


推荐阅读