如果可以匹配URl,那么beego也可以生成URL吗?当然可以。

UrlFor()函数就是用于构建执行函数的URL的。它把对应控制器和函数名结合的字符串作为第一个参数,其余参数对应URL中的变量。未知变量将添加到URL中作为查询参数。

下面定义了一个相应的控制器

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")))
}

  

下面是我们注册的路由:

beego.Router("/api/list", &TestController{}, "*:List")
beego.Router("/person/:last/:first", &TestController{})
beego.AutoRouter(&TestController{})

  

那么通过方式可以获取相应的URL地址:

beego.URLFor("TestController.List")
// 输出 /api/listbeego.URLFor("TestController.Get", ":last", "xie", ":first", "asta")
// 输出 /person/xie/astabeego.URLFor("TestController.Myext")
// 输出 /Test/Myextbeego.URLFor("TestController.GetUrl")
// 输出 /Test/GetUrl

  

模板中如何使用

默认情况下,beego已经注册了urlfor函数,用户可以通过如下的代码进行调用

{{urlfor "TestController.List"}}

  

为什么不把URL写死在模板中,反而要动态构建?有两个很好的理由:

(1)反向解析通常比硬编码URL更直观。同时,更重要的是你可以只在一个地方改变URL,而不用到处找。

(2)URL创建会为你处理特殊字符的转义和Unicode数据。

转载于:https://www.cnblogs.com/yangmingxianshen/p/10122391.html

beego——URL构建相关推荐

  1. flask url构建_如何为生产构建构建Flask-RESTPlus Web服务

    flask url构建 by Greg Obinna 由格雷格·奥比纳(Greg Obinna) 如何为生产构建构建Flask-RESTPlus Web服务 (How to structure a F ...

  2. 使用Flurl轻松构建URL并在.NET中进行可测试的HttpClient调用

    I posted about using Refit along with ASP.NET Core 2.1's HttpClientFactory earlier this week. Severa ...

  3. Java URL处理

    URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址.表示为互联网上的资源,如网页或者FTP地址. 本章节我们将介绍Java是如处理URL的.URL ...

  4. java 处理 url_Java URL处理 - Java 教程 - 自强学堂

    Java URL处理 URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址.表示为互联网上的资源,如网页或者FTP地址. 本章节我们将介绍Java是 ...

  5. jQuery构建路由

    buildMUrl:function( path ,params){var url = "/m" + path;var _paramUrl = '';if( params ){// ...

  6. Docker技术入门与实战 第二版-学习笔记-2-镜像构建

    3.利用 commit 理解镜像构成 在之前的例子中,我们所使用的都是来自于 Docker Hub 的镜像. 直接使用这些镜像是可以满足一定的需求,而当这些镜像无法直接满足需求时,我们就需要定制这些镜 ...

  7. jar 工程我怎么在网页上url访问某一个方法_Java高级编程之URL处理

    URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址.表示为互联网上的资源,如网页或者FTP地址. 本章节我们将介绍Java是如处理URL的.URL ...

  8. 外贸独立站开发构建多国语言版本?

    0.起源 国内很多厂家都会建立自己的阿里巴巴网站,有出口需求的厂家甚至会建立国际版的阿里巴巴,距我了解每年投入上10w的费用才会有叫好的信誉及排名.很多中小微厂家根本不敢尝试,归其原因无非是费用太大, ...

  9. android配置多个url,Retrofit中使用多个baseUrl

    在使用Retrofit之前需要进行Retrofit的创建,如下: return Retrofit.Builder() .baseUrl(NetClient.getInstance().getNetCo ...

最新文章

  1. 面试题6:用两个栈实现队列
  2. 4种趋势将在2021-2021年改变您的数据和分析策略
  3. [LeetCode] Reverse Linked List I II - 链表翻转问题
  4. 即将直播:新一代大数据技术构建PB级云端数仓实践
  5. ssl1104-USACO 2.1城堡(foodfill)【图论,广搜】
  6. raid5坏了一块盘怎么办_机械硬盘的坏道处理——屏蔽之
  7. 测试开发之缺陷报告上篇
  8. 理解 Delphi 的类(十) - 深入方法[15] - 调用其他单元的函数
  9. java基础学习(4)
  10. Java给树加子节点个数统计
  11. kindle paper write1 kindle pw1 安装多看系统 or 原本是多看双系统,升级kindle系统后多看系统消失,解决方法降级kindle系统+重装kindle系统
  12. 大话functional编程语言
  13. hdu2037-简单dp
  14. esp8266之红外报警
  15. 微信小程序websocket连接
  16. 分析hanoi塔代码
  17. mysql计算折纸_折纸飞机实验报告.doc
  18. 知识付费内容分类和平台解析
  19. s8 android调用相机,教你如何在安卓手机上使用谷歌 pixel相机
  20. Mybatis-Plus 官方神器发布!

热门文章

  1. hbase1.1.1 连接集群_HBase-1.2.1集群搭建
  2. 【java笔记】of方法 JDK9对集合添加方法的优化
  3. 剑指 Offer II 006. 排序数组中两个数字之和
  4. ffmpeg系列-编译
  5. FFmpeg源代码简单分析:avio_open2()
  6. 修改oracle安装目录权限设置权限,oracle rac环境,安装目录权限被修改乱了,怎么恢复?...
  7. Kubernetes 搭建 Kafka 和 Zookeeper 集群(完整教程)
  8. JVM面试重点总结(二)——垃圾收集器(GC)与内存分配策略
  9. IDEA修改SVN地址
  10. IDEA启动项目报错:非法字符: ‘\ufeff‘