如何在urlmappings文件中映射500错误?

时间:2018-09-25 07:02:56

标签: grails grails3

为了测试urlmappings文件中的映射500状态。目的是显示自定义错误视图页面。我有意抛出异常来对此进行测试。

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

import java.nio.file.AccessDeniedException

class HomeController {

    def index() {

        throw new AccessDeniedException('asd')
    }
}

我在网址映射中映射了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。

1 个答案:

答案 0 :(得分:0)

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

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

渲染状态:INTERNAL_SERVER_ERROR