通过URL grails groovy传递id

时间:2012-07-07 12:27:37

标签: grails

我正在编写一个grails应用程序,我有regiondistrictstreamsregion包含district,因此region_idforeign key表的district。在其他方面,只查询与region相关联的行,我需要能够将id传递给URL。 这是我的UrlMappings.groovy

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

        "/"(controller:"/user")
        "500"(view:'/error')
    }

然而,我转到我创建的链接转发到district控制器(默认为list我看到: localhost:8080/project/district/list,但它没有region_id,所以我期待localhost:8080/project/district/list/region_id='1'?localhost:8080/project/district/list/id='1'? 请有人帮我指出我的错误在哪里? 感谢

1 个答案:

答案 0 :(得分:3)

/$controller/$action?/$id?表示params地图的属性id具有来自网址的值。对于/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")

在这种情况下,此网址严格映射到控制器district,操作listparams.region_id将为/project/district/list/5

返回5