diff --git a/util/gpage/gpage.go b/util/gpage/gpage.go
index ac138d60f78..d434e3f638f 100644
--- a/util/gpage/gpage.go
+++ b/util/gpage/gpage.go
@@ -164,7 +164,7 @@ func (p *Page) GetContent(mode int) string {
p.FirstPageTag = "首页"
p.LastPageTag = "尾页"
return fmt.Sprintf(
- `%s%s[第%d页]%s%s第%s页`,
+ `%s%s[第 %d 页]%s%s第%s页`,
p.FirstPage(),
p.PrevPage(),
p.CurrentPage,
@@ -184,7 +184,7 @@ func (p *Page) GetContent(mode int) string {
pageStr += p.NextPage()
pageStr += p.LastPage()
pageStr += fmt.Sprintf(
- `当前页%d/%d 共%d条`,
+ `当前页 %d/%d 共 %d 条`,
p.CurrentPage,
p.TotalPage,
p.TotalSize,
@@ -210,20 +210,24 @@ func (p *Page) GetContent(mode int) string {
// The UrlTemplate attribute can be a URL or URI string containing the "{.page}" placeholder,
// which will be replaced by the actual page number.
func (p *Page) GetUrl(page int) string {
- return gstr.Replace(p.UrlTemplate, DefaultPagePlaceHolder, gconv.String(page))
+ return html.EscapeString(gstr.Replace(p.UrlTemplate, DefaultPagePlaceHolder, gconv.String(page)))
}
// GetLink returns the HTML link tag `a` content for given page number.
func (p *Page) GetLink(page int, text, title string) string {
+ var (
+ escapedTitle = html.EscapeString(title)
+ escapedText = html.EscapeString(text)
+ )
if len(p.AjaxActionName) > 0 {
return fmt.Sprintf(
`%s`,
- p.LinkStyle, p.AjaxActionName, p.GetUrl(page), html.EscapeString(title), text,
+ p.LinkStyle, p.AjaxActionName, p.GetUrl(page), escapedTitle, escapedText,
)
} else {
return fmt.Sprintf(
`%s`,
- p.LinkStyle, p.GetUrl(page), html.EscapeString(title), text,
+ p.LinkStyle, p.GetUrl(page), escapedTitle, escapedText,
)
}
}
diff --git a/util/gpage/gpage_z_unit_test.go b/util/gpage/gpage_z_unit_test.go
index 79881330533..5399db86fdb 100644
--- a/util/gpage/gpage_z_unit_test.go
+++ b/util/gpage/gpage_z_unit_test.go
@@ -33,27 +33,27 @@ func Test_New(t *testing.T) {
func Test_Basic(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
page := gpage.New(9, 2, 1, `/user/list?page={.page}`)
- t.Assert(page.NextPage(), `>`)
+ t.Assert(page.NextPage(), `>`)
t.Assert(page.PrevPage(), `<`)
t.Assert(page.FirstPage(), `|<`)
- t.Assert(page.LastPage(), `>|`)
+ t.Assert(page.LastPage(), `>|`)
t.Assert(page.PageBar(), `12345`)
})
gtest.C(t, func(t *gtest.T) {
page := gpage.New(9, 2, 3, `/user/list?page={.page}`)
- t.Assert(page.NextPage(), `>`)
- t.Assert(page.PrevPage(), `<`)
- t.Assert(page.FirstPage(), `|<`)
- t.Assert(page.LastPage(), `>|`)
+ t.Assert(page.NextPage(), `>`)
+ t.Assert(page.PrevPage(), `<`)
+ t.Assert(page.FirstPage(), `|<`)
+ t.Assert(page.LastPage(), `>|`)
t.Assert(page.PageBar(), `12345`)
})
gtest.C(t, func(t *gtest.T) {
page := gpage.New(9, 2, 5, `/user/list?page={.page}`)
t.Assert(page.NextPage(), `>`)
- t.Assert(page.PrevPage(), `<`)
- t.Assert(page.FirstPage(), `|<`)
+ t.Assert(page.PrevPage(), `<`)
+ t.Assert(page.FirstPage(), `|<`)
t.Assert(page.LastPage(), `>|`)
t.Assert(page.PageBar(), `12345`)
})
@@ -82,10 +82,10 @@ func Test_CustomStyle(t *testing.T) {
page.LinkStyle = "MyPageLink"
page.SpanStyle = "MyPageSpan"
page.SelectStyle = "MyPageSelect"
- t.Assert(page.NextPage(), `>`)
- t.Assert(page.PrevPage(), `<`)
- t.Assert(page.FirstPage(), `|<`)
- t.Assert(page.LastPage(), `>|`)
+ t.Assert(page.NextPage(), `>`)
+ t.Assert(page.PrevPage(), `<`)
+ t.Assert(page.FirstPage(), `|<`)
+ t.Assert(page.LastPage(), `>|`)
t.Assert(page.PageBar(), `12345`)
t.Assert(page.SelectBar(), ``)
})
@@ -95,10 +95,10 @@ func Test_Ajax(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
page := gpage.New(5, 1, 2, `/user/list/{.page}`)
page.AjaxActionName = "LoadPage"
- t.Assert(page.NextPage(), `>`)
- t.Assert(page.PrevPage(), `<`)
- t.Assert(page.FirstPage(), `|<`)
- t.Assert(page.LastPage(), `>|`)
+ t.Assert(page.NextPage(), `>`)
+ t.Assert(page.PrevPage(), `<`)
+ t.Assert(page.FirstPage(), `|<`)
+ t.Assert(page.LastPage(), `>|`)
t.Assert(page.PageBar(), `12345`)
})
}
@@ -108,8 +108,8 @@ func Test_PredefinedContent(t *testing.T) {
page := gpage.New(5, 1, 2, `/user/list/{.page}`)
page.AjaxActionName = "LoadPage"
t.Assert(page.GetContent(1), `上一页 2 下一页`)
- t.Assert(page.GetContent(2), `首页<<上一页[第2页]下一页>>尾页第页`)
- t.Assert(page.GetContent(3), `首页上一页12345下一页尾页当前页2/5 共5条`)
+ t.Assert(page.GetContent(2), `首页<<上一页[第 2 页]下一页>>尾页第页`)
+ t.Assert(page.GetContent(3), `首页上一页12345下一页尾页当前页 2/5 共 5 条`)
t.Assert(page.GetContent(4), `首页上一页12345下一页尾页`)
t.Assert(page.GetContent(5), ``)
})