我正在编写一个grails应用程序,其中有region
,district
和streams
。 region
包含district
,因此region_id
是foreign key
表的district
。在其他查询中仅与region
关联的行中,我需要能够将id
传递给URL。
这是我的UrlMappings.groovy
:
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/"(controller:"/user")
"500"(view:'/error')
}
但是,然后转到创建的链接以转发到
district
Controller (我看到的默认值为list
:localhost:8080/project/district/list
,但是它没有region_id
,所以我期待localhost:8080/project/district/list/region_id='1'?
或localhost:8080/project/district/list/id='1'?
有人可以帮我指出我的错误在哪里吗?谢谢
最佳答案
/$controller/$action?/$id?
表示params
映射将具有id
属性,其值来自url。对于类似于/project/district/list/5
的网址,此映射返回5(assert params.id == 5
)。
您也可以使用以下网址调用操作:/project/district/list?region_id=5
,并为params.region_id
获取5。
如果您想使用其他名称region_id
代替ʻid,并且不想将其作为查询参数传递,则可以进行自己的映射:
"/district/list/$region_id"(controller:"district", action: "list")
在这种情况下,此网址严格映射到 Controller
district
,操作list
和params.region_id
将为/project/district/list/5
返回5
关于grails - 通过URL传递id grails groovy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11374993/