這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
文章來源:http://gf.johng.cn/597433
靜態分頁是指頁面的分頁參數使用的是路由傳參,這種情境下分頁對象與Web Server的路由設計耦合性比較大。
樣本如下:
package mainimport ( "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
頁面的結果如下: