Grails URL映射优先规则
使用Grails实现以下URL映射Grails URL映射优先规则,grails,url-routing,Grails,Url Routing,使用Grails实现以下URL映射 '/api/abcdef' (resources: 'abcDef') '/api/abc' (resources: 'abc') 调用/api/abcdef调用AbcController.index(),使用格式参数def,而不是AbcDefController。但是,调用/api/abcdef/1已正确解析为AbcDefController.show()。这看起来像是grailsrilmappingreport将要报告的bug | GET |
'/api/abcdef' (resources: 'abcDef')
'/api/abc' (resources: 'abc')
调用/api/abcdef
调用AbcController.index()
,使用格式参数def
,而不是AbcDefController
。但是,调用/api/abcdef/1
已正确解析为AbcDefController.show()
。这看起来像是grailsrilmappingreport
将要报告的bug
| GET | /api/abcdef | Action: index |
位于AbcDefController
下
但是,如果将两个URL的顺序更改为
'/api/abc' (resources: 'abc')
'/api/abcdef' (resources: 'abcDef')
Grails将正确地将/api/abcdef
解析为AbcDefController.index()
但在任何一种情况下,/api/abc123
都将解析为AbcController.index()
,参数为123
URL映射的优先级机制是什么?上述行为正确吗?我支持Groovy 2.4.5和Grails 2.5.3
[W] 当两个映射可以应用于同一个传入URI时
wins具有以下功能:
更少的双通配符(**或$var**),或者如果两者相等,则
更少的单个通配符(*或$var),或者如果两者相等,则
更多非通配符路径段,或者如果两者相等,则
最左边的通配符(/foo//baz beats/foo/bar/),或者如果两者的最左边通配符位于同一位置,则
有更多约束的那个
来源:你找到这个问题的答案了吗?如果是这样,我希望你能把它贴在这里。谢谢。我以前看过这篇文章。但是仍然无法理解为什么/api/abc123
会被映射到AbcController
,以及/api/abc
和/api/abcdef
的顺序有什么关系