smile
开发类库——
JSP
分页标签
本文章将对
smile
中对
jsp
分页标签的支持进行一个详细的介绍:
首先来看一个简单的分页的例子:
Action
中的代码:
import org.smile.pager.jsptags.JspTagsPager;
public String queryAllUser() throws Exception{
userService .queryAllUser( new JspTagsPager( request ));
return "success" ;
}
Dao
中的代码:
public PageModel queryAllUser(Pager pager) throws SQLException {
StringBuffer sql= new StringBuffer( "select id,name,age from Test where 1=1 " );
String name=pager.getRequest().getParameter( "name" );
if (name!= null &&! "" .equals(name.trim())){
sql.append( " and name like '" +name+ "'" );
}
return PagerQueryUtils.queryPageSQL ( ds .getConnection(),sql.toString(),pager,Dialect. HSQL );
}
至于
action
中是怎么调用
dao
的在这里就没有必要详细描述了。
Jsp
中的主要代码
:
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "http://smile.org/jsp/jstl/tag/pager" prefix = "pg" %>
< table >
< tr >< td > ID </ td >< td > 名称 </ td >< td > 年龄 </ td ></ tr >
< c:forEach items = "${pageModel.rows} " var = "v" >
< tr >
< td > ${v.id } </ td >< td > ${v.name } </ td >< td > ${v.age } </ td >
</ tr >
</ c:forEach >
</ table >
< pg:pager url = "${path} /jsp/queryAllUserAction.do " maxPageItems = "${pageModel.size} " items = "${pageModel.total} ">
每页显示 < pg:sizes /> 条
< pg:common />
</ pg:pager >
结果:
现在来分析一下这个例子:
JspTagsPager是实现接口
package org.smile.pager;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.smile.db.PageModel;
/**
* 分页参数
* @author strive
*
*/
public interface Pager {
public HttpServletRequest getRequest();
public int getPage();
public int getSize();
public void commitResult(PageModel pageModel);
public Map getParameterMap();
}
这里我使用的数据库是HSQL 所以数据查询的方言指定Dialect.HSQL;
return PagerQueryUtils.queryPageSQL ( ds .getConnection(),sql.toString(),pager,Dialect. HSQL );
JspTagsPager只是指定了一个request,所以此查询的每页显示的数据也是跟据request中的参数改变的
userService .queryAllUser( new JspTagsPager( request ));
如果不想让每页显示的条数随着request中提交参数改变 ,那么就为它指定一个每页显示条数,那么就使用:
userService .queryAllUser( new JspTagsPager( request ,20));
<pg:common /> 是提供了一个通用的分页工具条 :
可以通过参数来配置哪此是要显示的内容(此例子的结果是显示了所有的内容)
参数有以下几个:
/**
* 是否存在首页和末页
*/
private boolean hasFirstLast=true;
/**
* 是否存在前一页和后一页
*/
private boolean hasPrevNext=true;
/**
* 是否存在页码
*/
private boolean hasPages=true;
/**
* 第一个页面、最后一个页码 与中间页面集合 的省略间距
*/
private int omitCount=0;
/**
* 是否存在第一个页码和最后一个页码
*/
private boolean hasPageFirstLast=true;
/**
* 是否存在详细信息
*/
private boolean hasDescript=true;
private String firstHtml="首页";
private String lastHtml="末页";
private String prevHtml="上一页";
private String nextHtml="下一页";
private String currentHtml="<font color=\"red\">{0}</font>";
private String description=" 当前是{0}/{1}页 共{2}条数据 每页显示{3}条 当前显示第{4}至第{5}条";
/**
* 是否动态隐藏 首页、前一页 ……
*/
private boolean dynamicHide=false;
比如 要让首页显示的是一个图片,而不是文字 刚可以 :
<pg:common firstHtml="<img src='${path}/images/table_buttom_first.gif'/>" />
这样就可以把首页这个链接变成一个图片了。
如果不要显示首页和末页的链接:
<pg:common hasFirstLast="false" />
设置descript 来改变描述文字:
<pg:common descript="total:{2} show{4} to {5}" />
可以通过参数设置,和多种标签灵活运用,可以构建出自己想要的分页条。
当然我们还可以不使用common这个标签而使用定制页面:
<pg:pager url="${path} /jsp/queryAllUserAction.do" maxPageItems="${pageModel.size}" items="${pageModel.total}" export="currentPageNumber=pageNumber" maxIndexPages="7">
<pg:first>
<a href="${pageUrl}">首页</a>
</pg:first>
<pg:prev>
<a href="${pageUrl }"><img src="${path}
/images/tzgg_page_left.gif" alt="前一页" /></a>
</pg:prev>
<pg:pageFirst>
<a href="${pageUrl}">${pageNumber }</a>...
</pg:pageFirst>
<pg:pages>
<c:choose>
<c:when test="${currentPageNumber eq pageNumber }">
<font color="red">${pageNumber }</font>
</c:when>
<c:otherwise>
<a href="${pageUrl }">${pageNumber }</a>
</c:otherwise>
</c:choose>
</pg:pages>
<pg:pageLast >
...<a href="${pageUrl }">${pageNumber }</a>
</pg:pageLast>
<pg:next>
<a href="${pageUrl }"><img src="${path}
/images/tzgg_page_right.gif" alt="后一页" /></a>
</pg:next>
<pg:last>
<a href="${pageUrl }">尾页</a>
</pg:last>
当前是第 ${pageModel.page}/${pageModel.totalPages } 页 共 ${pageModel.totals} 条数据
</pg:pager>
有时候我们需求传递一些查询参数到后台,可以使用 <pg:param /> 和<pa:params /> 标签来实现
<pg:pager url="${path} /jsp/queryAllUserAction.do" maxPageItems="${pageModel.size}" items="${pageModel.total}">
<pg:param name="name" value="${name}"/>
<pg:common />
</pg:pager>
或者
<pg:pager url="${path} /jsp/queryAllUserAction.do" maxPageItems="${pageModel.size}" items="${pageModel.total}">
<pg:params paramMap="${queryParam}"/>
<pg:common />
</pg:pager>
queryParam 是一个封闭了查询参数的map 如 {name=胡,age=14}
【smile-1.0.jar下载】http://hzs0502030128.iteye.com/blog/1471505
- 大小: 91.8 KB
分享到:
相关推荐
总的来说,这个项目提供了C#类库开发和使用的实际案例,对于学习和理解C#编程,特别是类库的创建和调用流程,是非常有价值的。通过学习这些资源,开发者可以提升自己的C#技能,并了解如何在实际项目中复用和集成...
"smile"是一个快速且全面的机器学习系统,它的全称是"Statistical Machine Intelligence and Learning Engine"。...在标签"Java开发-机器学习"的指引下,Smile成为了Java开发者在机器学习领域的得力助手。
该工具以MFC(Microsoft Foundation Classes)作为开发框架,利用这一强大的Windows应用程序开发库,实现了用户友好的界面和高效的性能。 MFC是微软提供的一套面向对象的类库,它封装了Windows API,使得开发者可以...
这个系统利用了Java后端的强大框架Hibernate和前端展示技术JSP,帮助开发者理解和实践Web应用程序的开发流程。 Hibernate是一个流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式来处理数据库操作,...
标签:fasterxml、jackson、dataformat、smile、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...
另外,考虑到标签"smile 头像",这可能意味着设计的目标是创建一系列与微笑相关、风格统一的头像,用于网站或应用的不同用户角色,或者作为品牌的一部分。这样的系列设计需要保持一致的设计语言,包括颜色、形状、...
标签:fasterxml、jackson、dataformat、smile、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释...
《算法SMiLE:探索多标签缺失分类的解决方案》 在信息技术领域,算法扮演着至关重要的角色,它们是计算机程序的基石,确保高效且全面地执行任务。"Algorithm-SMiLE.zip"是一个压缩包,其中包含了名为"SMiLE-master...
2. **JSP指令**:如`<%@ page %>`, `<%@ include %>`, `<%@ taglib %>`等,它们分别用于设置页面属性、引入其他页面和导入自定义标签库。 3. **JSP动作元素**:如`<jsp:include>`, `<jsp:forward>`, `<jsp:useBean>...
SmileMiner是一个包含各种现有的机器学习算法的Java库。主要组件包括:mile 机器学习的核心库SmileMath 数学函数、排序、随机数生成器、最优化、线性代数、统计分布、假设检验SmileData Parsers for ... 标签:smile
标题中的"haarcascade-smile.xml.zip"是一个与计算机视觉相关的压缩文件,它包含了OpenCV库用到的级联分类器(Haar Cascade)配置文件。OpenCV是一个开源的计算机视觉和机器学习库,广泛应用于图像处理和模式识别...
JSP通过内置的动作标签如`<form>`、`<input>`等来构建表单,使用POST或GET方法提交数据至服务器。 7. **会话管理**:为了保持用户状态,系统可能使用session对象。例如,当用户登录后,其信息会被存储在session中,...
Smile Smile (Statistical Machine Intelligence and Learning Engine) is a fast and comprehensive machine learning, NLP, linear algebra, graph, interpolation, and visualization system in Java and Scala...
jackson-dataformat-smile-2.11.4.jar jackson-dataformat-yam-2.11.4.jar 这俩jar包在服务运行的时候显示读取失败,拷贝到自己的maven仓库的 \com\fasterxml\jackson\dataformat\jackson-dataformat-smile\2.11.4 ...
在Web开发领域,创建一个购物车系统是常见的实践项目,尤其对于初学者来说,它可以帮助理解和掌握MVC(Model-View-Controller)模式、JavaServer Pages (JSP) 和 JavaScript 的交互,以及持久层框架如Hibernate的...
C-Smile源码是针对一种面向对象的脚本语言,其设计灵感来源于C++,但具有脚本语言的便捷性。这个语言的核心组件包括一个编译器、一个运行字节码的虚拟机以及一个可扩展的C++运行时环境。它的主要目标是支持独立且可...
标题中的"smile"可能指的是一个项目或者工具的名称,而描述中提到的"过时的英伟达图表"和"Nvidia Helm Charts"是与GPU计算和 Kubernetes 集群管理相关的技术。Nvidia Helm Charts 是 NVIDIA 提供的一套用于简化在 ...
在Android开发过程中,布局文件是构建用户界面的关键组成部分。它们定义了UI元素的层次结构、属性和交互方式。XML文件通常用于创建这些布局,因为它们提供了可读性强、易于维护的结构。本篇文章将深入探讨如何在...
《类MNIST数据集——data_me_test.rar_mnist_test_smile3ph详解》 在机器学习领域,数据集是模型训练的基础,而MNIST数据集作为手写数字识别的基准,早已深入人心。本文将深入探讨一个名为"data_me_test.rar_mnist_...
js类库之parallax.min.js