/*将xx.tld文件引入JSP,在页面上写
*<page:pageTag name="userForm" property="page" method="getUserInfo" zone="sResult,editZone"/>
*/
public class PageTag extends TagSupport {//继承自TagSupport
private String name;
private String property;
private String scope;
private String method;
private String zone;
public int doStartTag() throws JspException {
JspWriter out = pageContext.getOut();
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
Pagination page = (Pagination) RequestUtils.lookup(super.pageContext, name, property, scope);
int pageNo = page.getPageNo();
int totalPage = page.getTotalPage();
int count = page.getCount();
int prePage = page.getPrePage();
int nextPage = page.getNextPage();
int pageSize = page.getPageSize();
try {
out.println("共" + totalPage + "页 ");
out.println("当前为第" + pageNo + "页 ");
out.println("总记录为" + count + "条 ");
out.println("<a href='javascript:getPagination(" + prePage + "," + pageSize + ")'>上一页</a> ");
out.println("<a href='javascript:getPagination(" + nextPage + "," + pageSize + ")'>下一页</a> ");
out.println("<a href='javascript:getPagination(1," + pageSize + ")'>首页</a> ");
out.println("<a href='javascript:getPagination(" + totalPage + "," + pageSize + ")'>尾页</a> ");
out.println("<input type='hidden' name='ps' value='"+pageSize+"'/>\n<input type='hidden' name='pn' value='"+pageNo+"'/>");
out.println(
"\n<script>\n"
+ "function getPagination(pageNo,pageSize){\n"
+ "document.getElementById('pn').value=pageNo;\n"
+ "document.getElementById('ps').value=pageSize;\n"
+ "ajaxAnywhere.submitAJAX('"
+ method
+ "','"
+ zone
+ "');\n"
+ "}\n"
+ "</script>\n");
} catch (Exception e) {
e.printStackTrace();
throw new JspTagException ("IOException:" + e.toString());
}
return super.doStartTag();
}
public List getUserInfo(UserVO userVO,Pagination page) throws Exception {
int start = (page.getPageNo()-1)*page.getPageSize();
return getSqlMapClient().queryForList("user.getUserInfoCommon",userVO,start,page.getPageSize());
}
page.tld:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>application</shortname>
<info>
use for pagination
</info>
<tag>
<name>pageTag</name>
<tagclass>com.vanceinfo.user.web.PageTag</tagclass>
<bodycontent>jsp</bodycontent>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>method</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>zone</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
分享到:
相关推荐
java,jsp,list,分页,标签,自定义标签
在JSP页面上,我们可以使用JSTL标签库来遍历数据并展示,同时创建下拉框供用户选择不同的页数: ```jsp ${totalPages}" step="1"> ${i}" ${i == currentPage ? 'selected' : ''}>第${i}页 姓名 年龄...
- **LIFERAY-UI:PAGE-ITERATOR**:此标签用于分页显示大量数据,如数据库查询结果,使得用户能够逐页浏览,改善性能和用户体验。 - **LIFERAY-UI:MESSAGE**:用于在页面上显示动态消息,比如通知或提示信息,增强...
举例来说,如果我们要用Bootstrap来创建一个包含路径导航、分页和进度条的页面,我们可以使用以下HTML代码作为参考: ```html <!-- 路径导航 --> <li><a href="#">首页</a></li> <li><a href="#">图书馆</a></li...
- **选定工作表**:要选定相邻的多个工作表,可以先单击第一个工作表的标签,然后按住`Shift`键不放,再单击最后一个工作表的标签即可完成选择。 ### 5. 文档分页 - **分页种类**:WPS文档中的分页包括自动分页、...
模板标签提供了一种简洁的方式来处理数据的获取、排序以及分页等问题。在phpcms V9中,常见的用于列表调用的模板标签有{pc:content}、{loop}等。 在这篇文章中,作者提供了通过在循环中使用num++变量来实现不同样式...
使用举例 #### 3.1 初级篇 **3.1.1 最简语句实例** 下面是一个使用ec进行分页的最基础示例: ```jsp 标题1" /> 标题2" /> ``` 在上述代码中: - `@taglib`指令引入了ec的标签库,`uri`标识了库的位置,`...
- **2.7.1 include动作标签**:类似于include指令标签,但主要用于在运行时动态包含文件。 - **2.7.2 param动作标签**:用于向include动作标签传递参数。 - **2.7.3 forward动作标签**:用于重定向到另一个资源。...
5. **性能优化**:对于大数据量的情况,可以考虑使用缓存或分页技术来提高响应速度,避免一次性加载过多数据。 6. **安全性考虑**:在实际应用中,需要对输入进行验证和过滤,防止XSS等安全攻击。 通过以上步骤,...
091 Zookeeper 应用举例 092 Zookeeper 集群模式 093 Dubbo Admin 管理控制台 094 系统后台管理-修改所需依赖 095 服务提供者 096 服务消费者 097 测试 JRebel 热部署 098 登录页 099 首页1 099 首页2 100 使用 ...
091 Zookeeper 应用举例 092 Zookeeper 集群模式 093 Dubbo Admin 管理控制台 094 系统后台管理-修改所需依赖 095 服务提供者 096 服务消费者 097 测试 JRebel 热部署 098 登录页 099 首页1 099 首页2 100...
- **3.1.3 常用方法举例**:例如使用`getHeader()`获取HTTP头部信息。 - **3.1.4 用户注册**:通过`request`对象收集用户的注册信息。 - **3.1.5 获取HTML表单提交的数据**:利用`getParameterNames()`获取所有...
- **常用方法举例**:`request.getParameterNames()`等。 - **用户注册**:示例展示了如何使用request对象处理用户注册流程。 - **获取HTML表单提交的数据**:具体方法如上所述。 - **表格**:使用表格来展示...
- 常用方法举例:`request.getRequestURI()`返回请求的URI。 - 用户注册:通过获取表单提交的数据来处理用户注册逻辑。 - 获取HTML表单提交的数据:使用`request.getParameterNames()`获取所有参数名称。 - 表格...
- **3.1.3 常用方法举例**:`getRequestURI()`、`getRemoteAddr()`等。 - **3.1.4 用户注册**:使用request对象收集用户信息并存储。 - **3.1.5 获取HTML表单提交的数据**:通过`getParameter()`或`...
- **常用方法举例**:`request.getSession()`获取当前用户的Session。 - **用户注册**:使用`request`对象获取用户输入的注册信息。 - **获取HTML表单提交的数据**:使用`getParameter()`方法获取表单字段值。 - **...
- **3.1.3 常用方法举例**:了解如何使用`getHeader()`、`getSession()`等方法。 - **3.1.4 用户注册**:利用`request`对象收集用户输入,处理注册逻辑。 - **3.1.5 获取HTML表单提交的数据**:通过`getParameter...