Grails - UrlMapping
Summary
- 处理 controler 的一些规则。
- 注意:如果配合 spring core 使用,某些路径记得权限控制。
默认配置
package cn.duchaoqun
class UrlMappings {
static mappings = {
// 默认的
// 直接访问 /controller 根据约定会调用 index action。
// 直接方法 /controller/action1 根据约定会调用 action1。
// 直接访问 /controller/action1/123 一般会取当前 controller 的对象作为参数,id就是123。
// format 参数一般是在开发 API 的时候用,例如 .xml .json 的时候用。
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
"/"(controller:'login', action:'auth') // 访问指定 controller 的指定 action
"500"(view:'/error')
"404"(view:'/notFound')
}
}
自定义 controller 和 action
package cn.duchaoqun
class UrlMappings {
static mappings = {
// 根 url
"/"(view:"/index") // 访问 /views/index
"/"(controller:'login') // 访问指定 controller 的指定默认 action(index)
"/"(controller:'login', action:'auth') // 访问指定 controller 的指定 action
"/"(controller:'login', view:'about') // 访问指定 controller 下的指定 view 页面。
}
}
传递 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
本文来自博客园,作者:duchaoqun,转载请注明原文链接:https://www.cnblogs.com/duchaoqun/p/13151104.html