## 什么是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容易犯的错
- 字符串操作