在Grails 2.3.7上,假设以下url映射..
"/foo/$number?" (controller:'test', action:'actionOne')
"/foo/$number?/bar" (controller:'test', action:'actionTwo')
..和控制器:
class TestController {
def actionOne(){ render "Action_ONE: ${params.number}" }
def actionTwo(){ render "Action_TWO: ${params.number}" }
}
一切都很好......
/foo/1 //prints 'Action_ONE: 1'
/foo/2/bar //prints 'Action_TWO: 2'
/foo//bar //prints 'Action_TWO: null'
/foo// //prints 'Action_ONE: null'
...但
/foo //prints 'Action_TWO: null'
/foo/ //prints 'Action_TWO: null'
如果number
中的/foo/$number?
是可选的,为什么/foo
和/foo/
会映射到actionTwo()
?
答案 0 :(得分:0)
在以下两行
"/foo/$number?" (controller:'test', action:'actionOne')
"/foo/$number?/bar" (controller:'test', action:'actionTwo')
您已在网址中将号码定义为可选,因为您已使用"?" 。改变" $ number?"到" $ number"在
"/foo/$number?/bar" (controller:'test', action:'actionTwo')
第二行,它应该可以正常工作。
的详细信息