Pagination - Static Paging

Static paging refers to the use of route parameters for page pagination, where the paging object is highly coupled with the route definition of the Server. The route definition requires a route parameter with the name page, which can use fuzzy matching route *page, named matching route :page, or field matching route {page}.

Example 1, Using Fuzzy Matching Route

package main

import (
    "github.com/gogf/gf/v2/frame/g"
    "github.com/gogf/gf/v2/net/ghttp"
    "github.com/gogf/gf/v2/os/gview"
)

func main() {
    s := g.Server()
    s.BindHandler("/page/static/*page", func(r *ghttp.Request) {
        page := r.GetPage(100, 10)
        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": page.GetContent(1),
            "page2": page.GetContent(2),
            "page3": page.GetContent(3),
            "page4": page.GetContent(4),
        })
        r.Response.Write(buffer)
    })
    s.SetPort(8199)
    s.Run()
}

After execution, we manually visit the page http://127.0.0.1:8199/page/static/6, and the result is as follows:

Pagination - Static Paging - 图1

Example 2, Using Field Matching Route

package main

import (
    "github.com/gogf/gf/v2/frame/g"
    "github.com/gogf/gf/v2/net/ghttp"
    "github.com/gogf/gf/v2/os/gview"
)

func main() {
    s := g.Server()
    s.BindHandler("/:obj/*action/{page}.html", func(r *ghttp.Request) {
        page := r.GetPage(100, 10)
        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": page.GetContent(1),
            "page2": page.GetContent(2),
            "page3": page.GetContent(3),
            "page4": page.GetContent(4),
        })
        r.Response.Write(buffer)
    })
    s.SetPort(8199)
    s.Run()
}

The routing rule in this example is more flexible, using the {page} field matching rule to obtain current page number information. After execution, we visit any URL according to the routing rule, such as: http://127.0.0.1:8199/order/list/6.html, and the result is as shown below:

Pagination - Static Paging - 图2