1

我正在编写一个 grails 应用程序,我有region,districtstreams. regioncontains district,表region_id的 aforeign 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'? 有人可以帮我指出我的错误在哪里吗?谢谢

4

1 回答 1

2

/$controller/$action?/$id?意味着params地图将具有id来自 url 的值的属性。对于像这张地图这样的 url,/project/district/list/5返回 5 ( assert params.id == 5)。

您也可以使用以下 url: 调用您的操作,/project/district/list?region_id=5并为params.region_id.

如果您想使用不同的名称,region_id而不是 `id,并且不想将其作为查询参数传递,您可以制作自己的映射:

"/district/list/$region_id"(controller:"district", action: "list")

在这种情况下,此 url 严格映射到控制器district和操作listparams.region_id并将返回 5/project/district/list/5

于 2012-07-07T13:29:42.503 回答