struts標籤實現部落格園的分頁

2022-07-08 19:30:17 字數 4215 閱讀 4397

分頁的思路

首先,我是通過訪問相同的action,然後用offiset傳遞當前點選的頁碼。如:front/bbs?offiset=1 (表示點選第一頁)

action接收到offiset(點選的頁碼)後查詢資料,資料庫處理先不談。

假設我們處理完得到了資料,接著跳轉到原來的jsp頁面,jsp頁面的資料就更新了。

頁碼的演算法

假設已經得到總頁數page,當前點選的頁碼offiset。

由於url不能用運算子,我在action裡用變數儲存offiset1 = offiset - 1; offiset2 = offiset + 1;

以下**用到struts標籤,先導入標籤庫 <%@ taglib uri="/struts-tags" prefix="s"%>

<

s:if

test

="offiset != 1"

>

<

a href

="front/bbs?offiset=offiset1"

/>">prev

a>

s:if

>

<

s:if

test

="offiset != page"

>

<

a href

="front/bbs?offiset=offiset2"

/>">next

a>

s:if

>

第一頁、最後一頁一直都會有,直接寫上

<

a href

="front/bbs?offiset=1"

>1

a>

<

a href

="front/bbs?offiset=page"

/>"><

s:property

value

="page"

/>

中間的頁碼

用bean標籤迴圈所有頁碼(first、last表示從1到page迴圈),相當於乙個for迴圈。

<

s:bean

name

="org.apache.struts2.util.counter"

id="counter"

>

<

s:param

name

="first"

value

="1"

/>

<

s:param

name

="last"

value

="page"

/>

<

s:iterator

status

="st"

>

<

a href

="front/bbs?offiset="

><

s:property

/>

a>

s:iterator

>

s:bean

>

但是我們中間只要顯示11個頁碼,這就要在first、last那裡做判斷了。

修改後如下:(這裡我用三目運算子,考慮到當總頁數小於12,運算比較糾結)

<

s:param

name

="first"

value

="offiset > 7 ? offiset - 5 : 2"

/>

<

s:param

name

="last"

value

="offiset<7 ? page>12 ? 12 : page : offiset + 5 < page ? offiset + 5 : page"

/>

加入當前頁的頁碼變色

<

s:iterator

status

="st"

>

<

s:if

test

="#st.index+1 == offiset"

>

<

a href

="front/bbs?offiset="

><

font

color

="#ff0000"

><

s:property

/>

font

>

a>

s:if

>

<

s:else

>

<

a href

="front/bbs?offiset="

><

s:property

/>

a>

s:else

>

s:iterator

>

最後加入省略號,基本**如下:

<

s:if

test

="offiset != 1"

>

<

a href

="front/bbs?offiset=offiset1"

/>">prev

a>

s:if

>

<

a href

="front/bbs?offiset=1"

>1

a>

<

s:if

test

="offiset > 7"

>...

s:if

>

<

s:bean name

="org.apache.struts2.util.counter"

id="counter"

>

<

s:param

name

="first"

value

="offiset > 7 ? offiset - 5 : 2"

/>

<

s:param

name

="last"

value

="offiset<7 ? page>12 ? 12 : page : offiset < page - 5 ? offiset + 5 : page"

/>

<

s:iterator

status

="st"

>

<

s:if

test

="#st.index+1 == offiset"

>

<

a href

="front/bbs?offiset="

><

font

color

="#ff0000"

><

s:property

/>

font

>

a>

s:if

>

<

s:else

>

<

a href

="front/bbs?offiset="

><

s:property

/>

a>

s:else

>

s:iterator

>

s:bean

>

<

s:if

test

="offiset < page-7"

>...

s:if

>

<

a href

="front/bbs?offiset=page"

/>"><

s:property

value

="offiset2"

/>

a>

<

s:if

test

="offiset != page"

>

<

a href

="front/bbs?offiset=offiset2"

/>">next

a>

s:if

>

end! 

部落格園訪客統計的實現

最近有人讓我把裡面關於訪客統計做一篇文章 一直沒有寫,今天就發了吧 對不起呀!一直沒有時間 今天我會發多篇文章關於的美化問題。相信大家也看到了右側公告欄的訪客量統計的效果,我們可以看到有兩個樣式,乙個是單獨統計人數的,乙個是統計訪客 的,是不是感覺還挺不錯的?首先是數字樣式,效果如下 這個我們通過f...

部落格園的夢想

非常感謝大家對發展的熱烈關注與熱心幫助 非常感謝很多朋友提出了非常好的建議,讓我有很多收穫,給我帶來了更大的信心與動力!的發展牽動了這麼多朋友的心,讓我很感動,更讓我感受了更大的責任!的發展來自於所聚集的人群的力量,這個人群不僅僅是技術愛好者,技術精英,而且是影響著中國軟體產業發展的中流砥柱。eyy...

部落格園的CSRF

csrf全稱 cross site request forgery,跨站請求偽造。通俗理解 攻擊者盜用當前使用者身份,髮請當前使用者的惡意請求 如郵件,銀行轉賬等。csrf原理 登入 a,生成本地cookie資訊 登入危險 b,b獲取 a的內容,並向a傳送請求操作,若成功,則csrf過程成功。其中登...