首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Struts 2 分頁標簽庫實現:自定義標簽 + Pages 組件 + 垂直表存儲

     編輯:Java 相關知識

基於 Struts 2 組件架構實現的通用分頁標簽 <tangs:pages>,支援文本/數字主題、額外查詢參數保持、CSS 樣式自定義。包含 TLD 定義、Pages 邏輯組件、PageTag 標簽類、Action 數據準備、PageConfig 分頁工具類完整代碼。

文件結構

  • pagination.tld:標簽庫描述符,定義屬性 pageNo、total、includes、styleClass、theme。
  • Pages.java:繼承 Component,start(Writer) 生成分頁 HTML,從 ValueStack 取值、拼接 URL 參數、輸出首頁/上頁/下頁/末頁/總頁/當前頁。
  • PageTag.java:繼承 ComponentTagSupport,參數注入 Pages 組件。
  • PageConfig.java:封裝總記錄數→總頁數換算、每頁條數配置。

使用示例

<%@ taglib prefix="tangs" uri="/WEB-INF/pagination.tld" %>
<tangs:pages pageNo="pageNo" total="total" theme="text"/>

Action 代碼片段

private Integer total;
private Integer pageNo = 1;
public String listAllHotNews() {
    pageConfig.setAllRecordNum(dao.recordCount());
    total = pageConfig.getAllPageNum();
    int start = pageConfig.getPerRecordNum() * (pageNo - 1);
    hotNewsList = dao.listAllNews(start, pageConfig.getPerRecordNum());
    return SUCCESS;
}

優化建議

  • 將 HTML 生成邏輯遷移至 FreeMarker/Velocity 模板,Java 類僅負責數據準備。
  • includes 參數解析僅支援基本類型,建議擴展支援任意對象 toString() 或 JSON 序列化。
  • 分頁參數校驗:pageNo 越界修正、total=0 空數據友好提示。
  • 考慮引入 PageHelper (MyBatis) 或 Spring Data Pageable 統一分頁抽象,減少手工計算。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved