Summary
- 处理 controler 的一些规则。
- 注意:如果配合 spring core 使用,某些路径记得权限控制。
默认配置
| package cn.duchaoqun |
| |
| class UrlMappings { |
| static mappings = { |
| |
| |
| |
| |
| |
| "/$controller/$action?/$id?(.$format)?"{ |
| constraints { |
| |
| } |
| } |
| |
| "/"(controller:'login', action:'auth') |
| "500"(view:'/error') |
| "404"(view:'/notFound') |
| } |
| } |
自定义 controller 和 action
| package cn.duchaoqun |
| class UrlMappings { |
| static mappings = { |
| |
| "/"(view:"/index") |
| "/"(controller:'login') |
| "/"(controller:'login', action:'auth') |
| "/"(controller:'login', view:'about') |
| } |
| } |
传递 URL 参数
| package cn.duchaoqun |
| class UrlMappings { |
| static mappings = { |
| // Grails会将URL中$name位置的内容当成参数放在params里面,然后再 index action 里面通过 params.name 获取该值。 |
| "/character/$name"(controller:"character") |
| } |
| } |
处理不同类型的 HTTP 请求
| package cn.duchaoqun |
| class UrlMappings { |
| static mappings = { |
| |
| // 处理不同类型的 HTTP 请求 |
| "/character/$name" { |
| controller = "character" |
| action = [GET:'getAction', POST:'postAction'] |
| } |
| |
| // 使用通配符 |
| // "/character/*.html"(controller:"character") |
| // "/character/$name.html"(controller:"character") |
| } |
| } |
使用通配符
| package cn.duchaoqun |
| class UrlMappings { |
| static mappings = { |
| |
| "/character/*.html"(controller:"character") |
| "/character/$name.html"(controller:"character") |
| } |
| } |
Reference
http://docs.grails.org/latest/guide/theWebLayer.html#applyingConstraints
https://guides.grails.org/grails_url_mappings/guide/index.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?