1

我是 Revel 和 golang 的新手。我需要有关如何访问 Revel 中的查询参数并在路由中配置它的帮助。

示例:localhost:9000/company?name=ABC

我正在发送上面的获取请求,以从数据库中按名称获取公司。我不知道如何在routes文件中配置它。

我的动作有

func (c APP) ShowByName(name string){..}

这就是我设置路线的方式:

GET /company?name:name      APP.ShowByName
4

3 回答 3

0

根据 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 {
    ...
}
于 2016-02-16T14:20:52.053 回答
0

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
  }
  // ...
}
于 2019-02-02T07:25:51.400 回答
0

我找到了解决方案。

在行动中,我放置了以下代码:

c.Params.Query=c.Request.URL.Query()
var limit int
c.Params.Bind(&limit,"limit")

它适用于以下网址:

localhost:9000?limit=21

这是该 狂欢读取查询参数的完整代码

于 2016-03-15T12:44:29.073 回答