我昨天搞砸了这个,惨遭失败。我想转换:
"/$controller/$action?/$id?"
至
#in psudo
"/$controller/$id?/$action?"
#ideal regex
"\/(\w+)(\/\d+)?(\/\w+)?"
最明显的方法失败了"/$controller/$action?/$id?"
我可以编写正则表达式来做到这一点,但我无法找到使用真正正则表达式的方法(我找到了RegexUrlMapping但找不到如何使用它),也找不到有关如何分配组的文档一个变量。
我的问题是两部分:
- 如何使用真正的正则表达式定义 URL 资源。
- 如何将“组”绑定到变量。换句话说,如果我定义一个正则表达式,我如何将它绑定到一个变量,如 $controller、$id、$action
我还希望能够支持 .json 表示法 /user/id.json
我尝试过的其他事情,我认为这会起作用:
"/$controller$id?$action?"{
constraints {
controller(matches:/\w+/)
id(matches:/\/\d+/)
action(matches:/\/\w+/)
}
}
也试过:
"/$controller/$id?/$action?"{
constraints {
controller(matches:/\w+/)
id(matches:/\d+/)
action(matches:/\w+/)
}
}