我正在尝试创建一个UrlMapping来将一些静态URL映射到控制器操作,但我似乎无法设置params.id
。我正在通过 Grails in Action 工作,所以我不确定这里有什么问题。
代码:
class UrlMappings
...
static mappings={
"/timeline/chuck_norris"(controller:'post',action:'timeline',id:'chuck_norris')
...
}
在PostController中
def timeline{
def user = User.findByUserId(params.id)
[user:user]
}
错误:
No signature of method: ...findByUserId() is applicable for argument types: () values: []
上述代码有什么问题?我正在使用grails 1.2.2。
答案 0 :(得分:3)
你需要使用一个闭包:
"/timeline/chuck_norris"{
controller = 'post'
action = 'timeline'
id = 'chuck_norris"
}
或者像这样:
"/timeline/$id"{
controller = 'post'
action = 'timeline'
}