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條經驗 獲得超4個贊
根據 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 關注
- 192 瀏覽
添加回答
舉報