分页输出的实体
package com.loongtao.lucene.search.model;
import java.io.Serializable;
public class PageControl implements Serializable, Cloneable {
private static final long serialVersionUID = 3686354990469630498L;
private String pageName;
private String href;
private String isThisPage = "0";
public String getPageName() {
return pageName;
}
public void setPageName(String pageName) {
this.pageName = pageName;
}
public String getHref() {
return href;
}
public void setHref(String href) {
this.href = href;
}
public String getIsThisPage() {
return isThisPage;
}
public void setIsThisPage(String isThisPage) {
this.isThisPage = isThisPage;
}
}
* 搜索引擎检索分页控件
*
* @author xiao.bin
*
public class SearchPageControl {
public static List<PageControl> getQueryPageControlByApi(ApiObject api) {
List<PageControl> list = new ArrayList<PageControl>();
// 获取当前页
int page = api.getPage();
// 获取所有条数
int allarticleCount = api.getArticlescount();
// 获取当前页面大小
int pagesize = api.getPagesize();
// 计算页数
int countPage = allarticleCount / pagesize;
// 计算是否需要多加一页
if (allarticleCount % pagesize != 0) {
countPage++;
}
int startX = 1;
// 计算开始位置
if (page > 4 && page <= countPage) {
startX = page - 4;
}
// 上一页
if (page > 1 && page <= countPage) {
PageControl c = new PageControl();
c.setPageName("上一页");
c.setHref(appendHref(api, page - 1));
list.add(c);
}
for (int i = startX; i < startX + 10 && i <= countPage; i++) {
// 判断是否等于当前页
PageControl c = new PageControl();
c.setPageName(i + "");
c.setHref(appendHref(api, i));
if (i == page) {
c.setIsThisPage("1");
}
list.add(c);
}
// 上一页
if (page < countPage) {
PageControl c = new PageControl();
c.setPageName("下一页");
c.setHref(appendHref(api, page + 1));
list.add(c);
}
return list;
}
public static String appendHref(ApiObject api, int page) {
StringBuffer sb = new StringBuffer("?");
if (api.getTitle().length() > 0) {
sb.append(appendField("title", api.getTitle()));
}
if (api.getContent().length() > 0) {
sb.append(appendField("content", api.getContent()));
}
sb.append(appendField("page", page + ""));
sb.append("pagesize=" + api.getPagesize());
return sb.toString();
}
public static String appendField(String urlField, String urlValue) {
//urlencode转码
return urlField + "="
+ StringUtils.StringToUrlEncode(urlValue, StringUtils.UTF8)
+ "&";
}
public static void main(String[] args) {
ApiObject api = new ApiObject();
api.setArticlescount("365");
api.setPage("3");
api.setTitle("xiao.bin");
List<PageControl> list = getQueryPageControlByApi(api);
for (PageControl pageControl : list) {
System.out.println(pageControl.getHref());
}
}
}
由action 发送 List<PageControl> 到页面上.
struts2 标签 输出
<div id="page">
<s:iterator value="#request.pagectr" id="id" status="pagelist">
<s:if test="%{#id.isThisPage == 1}">
<strong>${pageName}</strong>
</s:if>
<s:else>
<a href="<%=basePath%>search/list.html${href}">[${pageName}]</a>
</s:else>
</s:iterator>
</div>
实现效果
[上一页] [1] 2 [3] [4] [5] [6] [7] [8] [9] [10] [下一页]
分享到:
相关推荐
Struts2分页是Web开发中的一个重要概念,它主要用于处理大量数据时,避免一次性加载所有数据导致页面响应慢或者浏览器崩溃。在这个场景中,我们提到的是使用自定义标签实现类似于百度分页的效果,这是一种常见的用户...
### Struts2 实现分页及 `<s:bean>` 标签详解 #### 一、Struts2 分页概述 在 Java Web 开发中,为了提高用户体验并减轻服务器负担,通常采用分页技术来展示数据。Struts2 框架提供了一套强大的工具和标签库来帮助...
- `JSP页面`:显示查询结果和分页控件,使用jQuery与服务器通信。 - `DAO(数据访问对象)`:与数据库交互的接口和实现类。 - `模型类`:对应数据库中的表结构,用于封装数据。 - `lib`:存放项目依赖的jar包,...
在Java Web开发中,实现分页控件的方法有很多,常见的有以下几种: 1. **JSP标签库**:例如,使用开源项目DisplayTag或者Struts2的分页插件。这些标签库提供了一套完整的分页解决方案,只需在JSP页面中插入相应的...
总的来说,"zoo-paging-1.0.jar"是一个自定义的JSP分页组件,适用于Struts2框架。通过使用这个组件,开发者可以快速实现高效、易于维护的分页功能。对于初学者,这是一个很好的学习资源,能帮助他们深入理解Java Web...
在Struts2中,分页可以通过多种方式实现,其中一种常用的方法是结合Action、JSP页面和Struts2提供的标签库。 #### 使用Struts2标签实现分页 Struts2提供了丰富的标签库,其中包括用于分页的标签。在实际操作中,...
SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架,它提供了强大的MVC(模型-视图-控制器)架构支持。在处理大量数据时,分页是必不可少的功能,可以提高用户体验并优化服务器性能。这里提到的是一...
5. index.jsp:首页,包含文件列表和分页控件。 6. JavaScript脚本:处理Ajax请求和页面更新。 总之,这个项目展示了如何将Struts2和Hibernate结合使用,以实现文件批量上传到数据库以及Ajax分页显示的功能。通过...
根据提供的标题、描述以及部分内文,我们可以梳理出关于如何使用Struts2与Hibernate实现分页功能的关键知识点。 ### Struts2与Hibernate简介 - **Struts2**:这是一个基于MVC架构的开源Web框架,它能帮助开发者...
创建一个简单的JSP分页控件,我们需要考虑以下几个核心组件: 1. **模型(Model)**:这部分通常由JavaBean或DAO(Data Access Object)实现,负责与数据库交互,获取所需的数据量并进行分页计算。例如,我们可能...
根据提供的信息,我们可以深入探讨如何在Struts2框架中实现分页功能。Struts2是一个开源的、用于创建企业级Java Web应用的框架。它基于MVC(模型-视图-控制器)架构模式,能够帮助开发者高效地组织代码并简化Web开发...
为了应对这一问题,开发社区推出了诸多分页插件,其中,“封装好直接使用的jsp分页插件”便是这样一款简化开发者工作的工具。 这款分页插件面向的是希望在项目中快速实现分页功能的开发者,它针对jsp+servlet原生...
Struts2是一款强大的Java web开发框架,它简化了MVC(模型-视图-控制器)架构的实现。在这个“struts2组件化分页”项目中,开发者已经为常见的分页功能提供了组件化的解决方案,避免了重复编写大量页面和后台处理...
8. **页面展示**:最后,在JSP页面中,我们可以使用Struts 2的内置标签结合自定义分页标签来展示数据和分页控件。 总结一下,实现Struts 2 自定义标签分页需要对Struts 2框架有深入理解,包括标签库的创建、Java类...
标题“分页page_struts2_.rar”暗示了这是一个关于Struts2框架中实现分页功能的示例或教程。Struts2是一个流行的Java web应用框架,它提供了强大的MVC(模型-视图-控制器)架构来组织和管理应用程序。在处理大量数据...
同时,JSP页面需要展示分页控件,并能够响应用户的分页操作请求。在JSP中通常会用到EL表达式和JSTL标签库来显示分页信息和数据。例如,使用JSTL的标签来迭代显示分页后的数据集合。 另外,文章中提及的...
这个文件可能展示了如何在Struts2的动作类中处理分页逻辑,如何配置Struts2的XML配置文件来支持分页请求,以及如何在JSP页面上展示分页控件。 总的来说,这个主题涵盖了SSH框架下的登录功能,特别是Struts2中的分页...
JavaScript可以通过绑定事件监听器,比如jQuery的`click`事件,来监听用户对分页控件的操作,并发送异步请求到服务器获取新的数据。 接着,我们来看看"国际化"。STRUTS2提供了强大的国际化支持,允许应用程序根据...
7. **Struts2_02_CRUD**:这可能是项目中的一个目录或者文件,可能包含实现了上述功能的源代码,比如Action类、DAO接口和实现、JSP视图页面等。 在实际开发中,这样的组合使得开发者能够快速搭建具备数据管理功能的...
Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们的组合被称为S2SH,是构建企业级应用的常用技术栈。这个项目是一个基于S2SH实现的最简单的增删改查(CRUD)与分页系统的实例,旨在帮助开发者理解和实践...