W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
如果可以匹配 URL ,那么 beego 也可以生成 URL 嗎?當(dāng)然可以。 UrlFor() 函數(shù)就是用于構(gòu)建指定函數(shù)的 URL 的。它把對(duì)應(yīng)控制器和函數(shù)名結(jié)合的字符串作為第一個(gè)參數(shù),其余參數(shù)對(duì)應(yīng) URL 中的變量。未知變量將添加到 URL 中作為查詢參數(shù)。 例如:
下面定義了一個(gè)相應(yīng)的控制器
type TestController struct {
beego.Controller
}
func (this *TestController) Get() {
this.Data["Username"] = "astaxie"
this.Ctx.Output.Body([]byte("ok"))
}
func (this *TestController) List() {
this.Ctx.Output.Body([]byte("i am list"))
}
func (this *TestController) Params() {
this.Ctx.Output.Body([]byte(this.Ctx.Input.Params()["0"] + this.Ctx.Input.Params()["1"] + this.Ctx.Input.Params()["2"]))
}
func (this *TestController) Myext() {
this.Ctx.Output.Body([]byte(this.Ctx.Input.Param(":ext")))
}
func (this *TestController) GetUrl() {
this.Ctx.Output.Body([]byte(this.UrlFor(".Myext")))
}
下面是我們注冊(cè)的路由:
beego.Router("/api/list", &TestController{}, "*:List")
beego.Router("/person/:last/:first", &TestController{})
beego.AutoRouter(&TestController{})
那么通過方式可以獲取相應(yīng)的URL地址:
beego.URLFor("TestController.List")
// 輸出 /api/list
beego.URLFor("TestController.Get", ":last", "xie", ":first", "asta")
// 輸出 /person/xie/asta
beego.URLFor("TestController.Myext")
// 輸出 /Test/Myext
beego.URLFor("TestController.GetUrl")
// 輸出 /Test/GetUrl
默認(rèn)情況下,beego 已經(jīng)注冊(cè)了 urlfor 函數(shù),用戶可以通過如下的代碼進(jìn)行調(diào)用
{{urlfor "TestController.List"}}
為什么不在把 URL 寫死在模板中,反而要?jiǎng)討B(tài)構(gòu)建?有兩個(gè)很好的理由:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: