分享
  1. 首页
  2. 文章

gf框架之分页模块(三) - 静态分页

John · · 1182 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

文章来源:http://gf.johng.cn/597433

静态分页是指页面的分页参数使用的是路由传参,这种场景下分页对象与Web Server的路由设计耦合性比较大。

示例如下:

package main
import (
 "gitee.com/johng/gf/g/os/gview"
 "gitee.com/johng/gf/g/net/ghttp"
 "gitee.com/johng/gf/g/util/gpage"
)
func main() {
 s := ghttp.GetServer()
 s.BindHandler("/page/static/*page", func(r *ghttp.Request){
 page := gpage.New(100, 10, r.Get("page"), r.URL.String(), r.Router.Uri)
 buffer, _ := gview.ParseContent(`
 <html>
 <head>
 <style>
 a,span {padding:8px; font-size:16px;}
 div{margin:5px 5px 20px 5px}
 </style>
 </head>
 <body>
 <div>{{.page1}}</div>
 <div>{{.page2}}</div>
 <div>{{.page3}}</div>
 <div>{{.page4}}</div>
 </body>
 </html>
 `, g.Map{
 "page1" : gview.HTML(page.GetContent(1)),
 "page2" : gview.HTML(page.GetContent(2)),
 "page3" : gview.HTML(page.GetContent(3)),
 "page4" : gview.HTML(page.GetContent(4)),
 })
 r.Response.Write(buffer)
 })
 s.SetPort(8199)
 s.Run()
}

在该示例中,我们需要用到分页对象New方法的第五个参数,route...string,该参数是当前请求的路由规则。我们这里可以通过r.Router.Uri方式将路由规则传递给分页对象。其中,ghttp.Request.Router是与当前请求匹配的路由对象,包含路由规则等相关信息,在分页对象中处理分页参数时,我们只会用到Uri属性。

执行后,我们手动访问http://127.0.0.1:8199/page/static/6页面的结果如下:
0987e383b48d7c36c28ff6e99c3b4c0b_663x219.png


有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:John

查看原文:gf框架之分页模块(三) - 静态分页

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
1182 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏