通过URL传递id grails groovy

通过URL传递id grails groovy,grails,Grails,我正在编写一个grails应用程序,其中有区域、地区和流region包含district,因此region\u id是district表的外键。除此之外,为了只查询与该区域相关联的行,我需要能够将id传递给URL。 这是我的UrlMappings.groovy: static mappings = { "/$controller/$action?/$id?"{ constraints { // apply constrain

我正在编写一个grails应用程序,其中有
区域
地区
region
包含
district
,因此
region\u id
district
表的
外键。除此之外,为了只查询与该
区域相关联的行,我需要能够将
id
传递给URL。 这是我的
UrlMappings.groovy

static mappings = {
        "/$controller/$action?/$id?"{
            constraints {
                // apply constraints here
            }
        }

        "/"(controller:"/user")
        "500"(view:'/error')
    }
但是,然后我转到我创建的链接,以转发到
地区
控制器(默认为
列表
我看到:
localhost:8080/project/district/list
,但它没有
region\u id
,所以我希望
localhost:8080/project/district/list/region\u id='1'?
localhost:8080/project/district/list/id='1'?
有人能帮我指出我的错误在哪里吗?
感谢
/$controller/$action?/$id?
表示
params
映射将具有属性
id
,其值来自url。对于类似
/project/district/list/5
的url,此映射返回5(
assert params.id==5

您还可以使用以下url调用您的操作:
/project/district/list?region_id=5
,并为
参数获取5。region_id

如果希望使用不同的名称,
region\u id
而不是'id',并且不希望将其作为查询参数传递,则可以创建自己的映射:

"/district/list/$region_id"(controller:"district", action: "list")
在这种情况下,此url被严格映射到控制器
地区
,操作
列表
参数。对于
/project/district/list/5