grails - 如何在 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。
解决方案
您收到 500 错误还是收到 403?尝试将 403 添加到您的 URL 映射或在您的控制器中尝试以下操作以获取 500 错误。
导入静态 org.springframework.http.HttpStatus.*
渲染状态:INTERNAL_SERVER_ERROR
推荐阅读
- mysql - 3张表来计算商品价格
- laravel - 在 Laravel 8 中使用 Tailwind 安装 Font Awesome
- node.js - 如何在猫鼬中填充另一个模型的子文档?
- swift - 核心数据,@Environment(\.managedObjectContext),onMove
- php - phpmyadmin 数据库中的斯洛文尼亚字符未使用 select where 子句获取
- python - 使用 BERT 文本分类,ValueError: too many dimensions 'str' 发生错误
- apache-spark - 在 zeppelin 中获取 java.lang.NoSuchMethodError 运行 spark 代码以使用 SQL DB 创建数据帧
- angular - Angular Elements:自定义元素属性在 OnInit 函数中未定义
- mysql - sql查询公司数据库
- excel - 如何从一个工作簿复制数据并将值仅粘贴到另一个工作簿中并允许宏只运行一次?