`
hzs0502030128
  • 浏览: 23301 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

smile开发类库——JSP分页标签

阅读更多

                      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#写的类库及调用例子

    jackson-dataformat-smile-2.10.0-API文档-中文版.zip

    标签:fasterxml、jackson、dataformat、smile、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...

    jackson-dataformat-smile-2.8.10-API文档-中英对照版.zip

    标签:fasterxml、jackson、dataformat、smile、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释...

    机器学习算法Java库smile.zip

    SmileMiner是一个包含各种现有的机器学习算法的Java库。主要组件包括:mile 机器学习的核心库SmileMath 数学函数、排序、随机数生成器、最优化、线性代数、统计分布、假设检验SmileData Parsers for ... 标签:smile

    我的smile头像

    smile 页面设计 素材 头像

    Android代码-smile

    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/yam-2.11.4.jar

    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 ...

    opencv识别资源。例如haarcascade_smile.xml

    opencv识别资源。例如haarcascade_smile.xml,好像有人要过

    js类库下载

    js类库之parallax.min.js

    jackson-dataformat-smile-2.8.6-API文档-中文版.zip

    标签:dataformat、jackson、fasterxml、smile、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...

    jackson-dataformat-smile-2.9.6-API文档-中文版.zip

    标签:fasterxml、jackson、dataformat、smile、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...

    jackson-dataformat-smile-2.8.10-API文档-中文版.zip

    标签:fasterxml、jackson、dataformat、smile、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...

    jackson-dataformat-smile-2.10.0-API文档-中英对照版.zip

    标签:fasterxml、jackson、dataformat、smile、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释...

    jackson-dataformat-smile-2.8.6-API文档-中英对照版.zip

    标签:dataformat、jackson、fasterxml、smile、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变...

    jackson-dataformat-smile-2.9.6-API文档-中英对照版.zip

    标签:fasterxml、jackson、dataformat、smile、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释...

    WinRAR的皮肤主题Smile

    WinRAR的皮肤主题之一Smile48x48

    GDIDrawing2 —— GDI+绘图(二)

    GDIDrawing2 —— GDI+绘图(二)

    smile1.0_src

    这是一个封装了一些小工具的类库 作者:胡真山 邮箱:hzs0502030128@163.com QQ:290146360 主要功能介绍 : 一、一个数据库操作 查询数据 SQLRunner Query 分页查询 二、数据源的实现 DbManager ...

    Algorithm-SMiLE.zip

    Algorithm-SMiLE.zip,多标签缺失分类的smile算法,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。

Global site tag (gtag.js) - Google Analytics