3 回答
TA贡献1828条经验 获得超13个赞
我找到了解决方案。
在行动中,我放置了以下代码:
c.Params.Query=c.Request.URL.Query()
var limit int
c.Params.Bind(&limit,"limit")
它适用于以下 URL:
localhost:9000?limit=21
这是该revel 读取查询参数的完整代码
TA贡献1872条经验 获得超3个赞
根据 revel 文档,所有请求参数都收集到单个 Params 对象中,其中包括:
The URL /:path parameters
The URL ?query parameters
Submitted Form values
File multipart uploads
提取的参数可通过 Action 方法获得parameters。
type Params struct {
url.Values
Files map[string][]*multipart.FileHeader
}
检查 Params 结构,我们可以观察到它使用 url.Values
根据以上信息,查询参数url路由可以设置为:
GET /company/:name?name APP.ShowByName
和控制器动作:
func (c APP) ShowByName(name string) revel.Result {
...
}
TA贡献1812条经验 获得超5个赞
URL 查询参数会自动传递给控制器。
在您的routes文件中,只需指定 URL 路径(忽略查询字符串)。对于localhost:9000/company?name=ABC问题中给出的示例,您只需:
(routes file)
GET /company SomeController.ShowByName
然后在控制器内,只需添加函数参数。Revel 会将这些绑定到适当的查询字符串值:
func (c SomeController) ShowByName(name string) revel.Result {
if name == "" {
// handle missing or empty
}
// ...
}
- 3 回答
- 0 关注
- 165 浏览
添加回答
举报