## 什么是url反轉:
* 動態構建url,就是根據方法名生成對應的url,原來是通過url找到對應的方法,現在我們要通過方法找到對應的url,這就是url反轉
## URLFor實現url反轉的好處:
* url改變不需要跟著改代碼
## 示例代碼:
~~~
控制層:
?
type TestController struct {
? beego.Controller
}
?
func (g *TestController)Get() {
? g.TplName = "test.html"
}
?
func (l *TestController)List() {
? fmt.Println(beego.URLFor("TestController.Get")) ? ? // 在list中反轉get的url
? l.TplName = "test_list.html"
}
?
?
路由:
?
beego.AutoRouter(&controllers.TestController{}) ? ? ? // 自動路由,
?
?
訪問:
?
list的訪問:http://127.0.0.1:8090/test/list ? ? ? ? // ? /控制器名/方法名
?
get的訪問:http://127.0.0.1:8090/test/get
?
?
檢查:
看看訪問list方法的時候是不是打印了get的url,如果打印/test/get則正常
?
?
路由如果只設置了自動路由,則只能通過/控制器名/方法名來訪問,我們可以多定義個固定路由來指定訪問的url:
beego.Router("/test",&controllers.TestController{})
beego.Router("/test_list",&controllers.TestController{},"*:List")
?
這樣就可以通過自動路由和固定路由都能訪問了:
http://127.0.0.1:8090/test_list ? ? ? // 固定路由
http://127.0.0.1:8090/test/list ? ? ? // 自動路由
~~~
## 模板中使用url反轉:{ {urlfor "TestController.List"} }
~~~
get頁面:
這是test頁面<br>
<a href="{{urlfor "TestController.List"}}">跳轉到列表頁</a>
?
?
list頁面:
這是列表頁
~~~
## 帶參數的url反轉:
我們需要反轉成這樣:/test/get?:id=123
~~~
beego.URLFor("TestController.Get",":id", "123") ? // 參數名,值 多個用逗號隔開
?
beego.URLFor("TestController.Get",":id", "123",":name","zhiliao")
~~~
- go環境搭建
- 解決go get網絡慢的問題
- beego的安裝
- bee的安裝
- 編輯器
- go module
- 配置文件詳解
- 配置文件其他說明
- 路由方法
- 路由
- 數據校驗
- 校驗函數
- 頁面跳轉
- 獲取前端數據
- json文件的獲取
- xsrf的用法
- xsrf的防護
- srfs和json的搭配
- flash的用法
- 過濾器
- url反轉
- 各類數據的處理
- 模板函數
- 內置模板函數
- 自定義模板函數
- 模板
- 模板處理
- 模板渲染
- 視圖文件的處理
- 靜態文件
- 請求方式判斷
- 驗證碼
- 另一種方法
- 分頁類
- session
- 登錄判斷
- orm模塊
- 使用方法
- mysql的安裝
- 安裝orm及驅動
- 建立模型
- 自定義模型
- 增刪改查
- 高級查詢
- 常見問題匯總
- 代碼收藏
- 打包部署
- go build打包
- utils收藏
- 新goer容易犯的錯
- 字符串操作