- 浏览: 151275 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
hx0637:
楼主!小弟要面临面试了,能否指导下小弟?
面试 深圳一家公司的 -
kljismi:
你好,我现在正在开这项目的代码,但是我不明白@Privileg ...
权限管理模块分析 -
yzhw:
终于找到了
ImageSizer.java -
sunloveny:
国
struts国际化 -
jackotty:
谢谢楼主的分享
struts validator验证框架
利用Pager-Taglib实现机构管理的分页处理
- 重点理解Pager-Taglib的分页原理
- 为什么需要PagerModel对象
- 重点理解Pager-Taglib的分页原理
- 为什么需要PagerModel对象
引用
1、拷贝pager-taglib.jar包
2、在JSP页面中使用taglib指令引入pager-taglib标签库
3、使用pager-taglib标签库进行分页处理
pg:pager【这个标签用来设置分页的总体参数】重要参数说明:
url:分页的链接根地址,pager标签会在这个链接的基础上附加分页参数
items:总记录数,pager标签正是根据这个值来计算分页参数的
maxPageItems:每页显示的行数,默认为10
maxIndexPages:在循环输出页码的时候,最大输出多少个页码,默认是10
pg:first【第一页的标签】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 首页第一行的索引值
lastItem - 首页最后一行的索引值
pg:pre【上一页标签】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 前页第一行的索引值
lastItem - 前页最后一行的索引值
pg:next【下一页标签】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 下页第一行的索引值
lastItem - 下页最后一行的索引值
pg:last重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 尾页第一行的索引值
lastItem - 尾页最后一行的索引值
pg:pages【这个标签用来循环输出页码信息】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - pageNumber这个页码指定的那一页的第一行的索引值
lastItem - pageNumber这个页码指定的那一页的最后一行的索引值
2、在JSP页面中使用taglib指令引入pager-taglib标签库
3、使用pager-taglib标签库进行分页处理
pg:pager【这个标签用来设置分页的总体参数】重要参数说明:
url:分页的链接根地址,pager标签会在这个链接的基础上附加分页参数
items:总记录数,pager标签正是根据这个值来计算分页参数的
maxPageItems:每页显示的行数,默认为10
maxIndexPages:在循环输出页码的时候,最大输出多少个页码,默认是10
pg:first【第一页的标签】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 首页第一行的索引值
lastItem - 首页最后一行的索引值
pg:pre【上一页标签】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 前页第一行的索引值
lastItem - 前页最后一行的索引值
pg:next【下一页标签】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 下页第一行的索引值
lastItem - 下页最后一行的索引值
pg:last重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 尾页第一行的索引值
lastItem - 尾页最后一行的索引值
pg:pages【这个标签用来循环输出页码信息】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - pageNumber这个页码指定的那一页的第一行的索引值
lastItem - pageNumber这个页码指定的那一页的最后一行的索引值
package com.bjsxt.oa; import java.util.List; public class PagerModel { private List datas; private int total; public List getDatas() { return datas; } public void setDatas(List datas) { this.datas = datas; } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } }
package com.bjsxt.oa.web.actions; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.beanutils.BeanUtils; import org.apache.struts.Globals; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.apache.struts.actions.DispatchAction; import com.bjsxt.oa.PagerModel; import com.bjsxt.oa.manager.OrgManager; import com.bjsxt.oa.model.Organization; import com.bjsxt.oa.web.forms.OrgActionForm; public class OrgAction extends DispatchAction { private OrgManager orgManager; /** * 进入主界面 */ @Override protected ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // OrgActionForm oaf = (OrgActionForm)form; int parentId = oaf.getParentId(); int offset = 0; try { offset = Integer.parseInt(request.getParameter("pager.offset")); } catch (Exception ignore) { } int pagesize = 10; PagerModel pm = orgManager.searchOrgs(parentId,offset,pagesize); request.setAttribute("pm", pm); int ppid = 0; if(parentId != 0){ Organization parent = orgManager.findOrg(parentId); if(parent.getParent() != null){ ppid = parent.getParent().getId(); } } request.setAttribute("ppid", ppid); return mapping.findForward("index"); } /** * 打开添加界面 * @param mapping * @param form * @param request * @param response * @return * @throws Exception */ public ActionForward addInput(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { return mapping.findForward("add_input"); } //添加机构信息 public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { OrgActionForm oaf = (OrgActionForm)form; Organization org = new Organization(); BeanUtils.copyProperties(org, oaf); orgManager.addOrg(org, oaf.getParentId()); return mapping.findForward("pub_add_success"); } public ActionForward del(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { OrgActionForm oaf = (OrgActionForm)form; int id = oaf.getId(); // try{ orgManager.delOrg(id); // }catch(Exception e){ // ActionMessages msgs = new ActionMessages(); // // ActionMessage msg = new ActionMessage() // // msgs.add("m", msg); //传输的是普通消息 // request.setAttribute(Globals.MESSAGES_KEY, msgs); // saveMessages(request, msgs); //传输的是错误消息 // request.setAttribute(Globals.ERROR_KEY, msgs); // saveErrors(request, msgs); // // return mapping.findForward("org_exception"); // } return mapping.findForward("pub_del_success"); } public ActionForward updateInput(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { return mapping.findForward("update_input"); } public ActionForward update(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { return mapping.findForward("pub_update_success"); } public void setOrgManager(OrgManager orgManager) { this.orgManager = orgManager; } }
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@include file="/common/common.jsp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Pager-taglib分页处理演示</title> </head> <body> <pg:pager items="1001" maxPageItems="33" maxIndexPages="20" export="currentPageNumber=pageNumber"> <pg:first> <a href="${pageUrl}">首页</a> </pg:first> <pg:prev> <a href="${pageUrl}">前页</a> </pg:prev> <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:next> <a href="${pageUrl}">下页</a> </pg:next> <pg:last> <a href="${pageUrl}">尾页</a> </pg:last> </pg:pager> </body> </html>
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@include file="/common/common.jsp" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <link href="style/oa.css" rel="stylesheet" type="text/css"> <script language="javascript" src="script/public.js"></script> <title>人员管理</title> </head> <BODY bgColor=#dee7ff leftMargin=0 background="" topMargin=0 marginheight="0" marginwidth="0"> <center> <TABLE width="778" border=0 cellPadding=0 cellSpacing=0 borderColor=#ffffff bgColor=#dee7ff style="FONT-SIZE: 10pt"> <TBODY> <TR height=35> <TD align=middle width=20 background=images/title_left.gif bgColor=#dee7ff></TD> <TD align=middle width=120 background=images/title_left.gif bgColor=#dee7ff><FONT color=#f7f7f7> 机构管理<font color="#FFFFFF"> </font></FONT> </TD> <TD align=middle width=11 background=images/title_middle.gif bgColor=#dee7ff><FONT color=#f7f7f7> </FONT> </TD> <TD align=middle background=images/title_right.gif bgColor=#dee7ff><FONT color=#f7f7f7> </FONT> </TD> </TR> </TBODY> </TABLE> <TABLE width="778" border=0 align=center cellPadding=0 cellSpacing=0 borderColor=#ffffff style="FONT-SIZE: 10pt"> <TBODY> <TR> <TD width="82%" height=14 align=right vAlign=center noWrap> </TD> <TD width="18%" align=right vAlign=center noWrap> </TD> </TR> <TR> <TD height=14 align=right vAlign=center noWrap> <!-- 在这里插入查询表单 --> </TD> <TD height=14 align="left" vAlign=center noWrap> <% /** * 在这里定义“添加”,“查询”等按钮 * <input type="image" name="find" value="find" src="images/cz.gif"> * * <a href="#" onClick="BeginOut('document.do?method=addInput','470')"> * <img src="images/addpic.gif" border=0 align=absMiddle style="CURSOR: hand"></a> */ %> <a href="#" onClick="openWin('org.do?method=addInput&parentId=${orgForm.parentId }','addperson',600,200);">添加机构信息</a> <a href="org.do?parentId=${ppid }">返回</a> </TD> </TR> <TR> <TD height=28 colspan="2" align=right vAlign=center noWrap background=images/list_middle.jpg> <!-- 可以在这里插入分页导航条 --> </TD> </TR> </TBODY> </TABLE> <table width="778" border="0" cellPadding="0" cellSpacing="1" bgcolor="#6386d6"> <!-- 列表标题栏 --> <tr bgcolor="#EFF3F7" class="TableBody1"> <td width="5%" height="37" align="center"><b>序号</b></td> <td width="18%" height="37" align="center"><B>机构名称</B></td> <td width="18%" height="37" align="center"><b>机构编号</b></td> <td width="18%" height="37" align="center"><b>父机构名称</b></td> <td width="5%" height="37" align="center"><b>操作</b></td> </tr> <!-- 列表数据栏 --> <c:if test="${!empty pm.datas}"> <c:forEach items="${pm.datas }" var="org"> <tr bgcolor="#EFF3F7" class="TableBody1" onMouseOver="this.bgColor = '#DEE7FF';" onMouseOut="this.bgColor='#EFF3F7';"> <td align="center" vAlign="center">${org.id }</td> <td align="center" vAlign="center"><a href="org.do?parentId=${org.id }">${org.name }</a></td> <td align="center" vAlign="center">${org.sn }</td> <td align="center" vAlign="center">${org.parent.name }</td> <td align="center" vAlign="center"> <a href="#" onClick="del('org.do?method=del&id=${org.id }')">删除</a> </td> </tr> </c:forEach> </c:if> <!-- 在列表数据为空的时候,要显示的提示信息 --> <c:if test="${empty pm.datas}"> <tr> <td colspan="7" align="center" bgcolor="#EFF3F7" class="TableBody1" onMouseOver="this.bgColor = '#DEE7FF';" onMouseOut="this.bgColor='#EFF3F7';"> 没有找到相应的记录 </td> </tr> </c:if> </table> <TABLE width="778" border=0 align=center cellPadding=0 cellSpacing=0 borderColor=#ffffff style="FONT-SIZE: 10pt"> <TBODY> <TR> <TD height=28 align=right vAlign=center noWrap background=images/list_middle.jpg> <!-- 可以在这里插入分页导航条 --> <pg:pager url="org.do" items="${pm.total}" export="currentPageNumber=pageNumber"> <pg:param name="parentId"/> <pg:first> <a href="${pageUrl}">首页</a> </pg:first> <pg:prev> <a href="${pageUrl}">前页</a> </pg:prev> <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:next> <a href="${pageUrl}">下页</a> </pg:next> <pg:last> <a href="${pageUrl}">尾页</a> </pg:last> </pg:pager> </TD> </TR> </TBODY> </TABLE> </center> </body> </html>
package com.bjsxt.oa.manager.impl; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.bjsxt.oa.PagerModel; import com.bjsxt.oa.manager.OrgManager; import com.bjsxt.oa.manager.SystemException; import com.bjsxt.oa.model.Organization; public class OrgManagerImpl extends HibernateDaoSupport implements OrgManager { public void addOrg(Organization org, int parentId) { if(parentId != 0){ org.setParent(findOrg(parentId)); } getHibernateTemplate().save(org); //自动生成机构编号 org.setSn( (org.getParent() == null ? "" : org.getParent().getSn() + "_") + org.getId() ); getHibernateTemplate().update(org); } public void delOrg(int orgId) { Organization org = findOrg(orgId); //判断子机构列表是否为空 if(org.getChildren().size() > 0){ //throw new RuntimeException("存在子机构信息,不允许删除"); // SystemException se = new SystemException(""); // se.setKey(); // se.setValues(..); throw new SystemException("errors.org.hassuborg",new Object[]{org.getName(),org.getChildren().size()},"存在子机构信息,不允许删除"); } //判断人员是否非空 String hql = "select count(*) from Person p where p.org.id = ?"; Long personSize = (Long)getSession().createQuery(hql).setParameter(0, orgId).uniqueResult(); if(personSize > 0){ throw new RuntimeException("机构下面有人员信息,不允许删除"); } getHibernateTemplate().delete(org); } public Organization findOrg(int orgId) { return (Organization)getHibernateTemplate().load(Organization.class, orgId); } public PagerModel searchOrgs(int parentId,int offset,int pagesize) { //查询总记录数 String selectCountHql = "select count(*) from Organization o where o.parent is null"; if(parentId != 0){ selectCountHql = "select count(*) from Organization o where o.parent.id = "+parentId; } int total = ((Long)getSession().createQuery(selectCountHql).uniqueResult()).intValue(); //查询当前页的数据 String hql = "select o from Organization o where o.parent is null"; if(parentId != 0){ hql = "select o from Organization o where o.parent.id = "+parentId; } List datas = getSession().createQuery(hql) .setFirstResult(offset) .setMaxResults(pagesize) .list(); PagerModel pm = new PagerModel(); pm.setDatas(datas); pm.setTotal(total); return pm; } public void updateOrg(Organization org, int parentId) { if(parentId != 0){ org.setParent(findOrg(parentId)); } getHibernateTemplate().update(org); } }
发表评论
-
oa_22
2009-02-04 22:20 1816oa_22: 结合Freemarker,将动态表单显示在公文 ... -
oa_21
2009-02-04 22:18 1221oa_21: 添加动态表单呈现层代码 - 理解批量数据的 ... -
oa_20
2009-02-04 22:15 1293oa_20: 1、创建动态表单的领域模型 FieldInp ... -
oa_18
2009-02-04 22:07 863oa_18: 实现WorkflowManager接口,以及流 ... -
oa_17
2009-02-04 22:03 1229集成JBPM到OA系统,并实现JbpmFacade接口 - ... -
oa_16
2009-02-04 21:58 949oa_16: 根据用例分析的结果,创建WorkflowMan ... -
oa_15:
2009-02-04 21:55 887oa_15: 根据公文流转领域模型创建相关的实体类,并使用x ... -
oa_14
2009-02-04 21:51 1337利用JSTL函数实现即时认证 - SecurityFunc ... -
oa_13
2009-02-04 21:35 1392oa_13: 实现登录功能 - LoginAction ... -
oa_11
2009-02-04 20:51 916初步实现授权管理的界面,重点在于: 1、理解DWR如何使用,理 ... -
oa_10
2009-01-18 12:54 1136提供初始化数据的代码 ... -
oa_09
2009-01-18 12:48 1780提供人员管理、模块管理、角色管理、用户管理相关的代码。 同时 ... -
oa_08
2009-01-18 12:08 1064创建AclManager接口,并实现 - 理解权限管理子系统 ... -
oa_07
2009-01-18 11:54 1290引入Ant和Xdoclet的支持, ... -
oa_06
2009-01-18 11:48 1059利用ThreadLocal实现分页参数的透明传输(通过使用Th ... -
oa_05
2009-01-18 11:41 988从现有的分页处理方案中,抽象出AbstractManager, ... -
oa_03
2009-01-18 11:22 1190在做完机构管理的业务逻辑之后,下面考虑呈现层的实现。 1、 ... -
oa_02
2009-01-18 11:05 1024整合Spring和Hibernate之后,对于业务逻辑类的测试 ... -
oa_01+
2009-01-18 10:55 1242package com.bjsxt.oa.manager.im ... -
oa_01
2009-01-18 10:48 1280oa_01: 1、建立机构管理的实体类,并映射【重点理解多对 ...
相关推荐
泛微OA9前台任意文件上传漏洞位于: /page/exportImport/uploadOperation.jsp文件中Jsp流程大概是:判断请求是否是mult
“oa_gl_04”这个文件名可能代表着“办公管理”的第四部分,可能是通达OA系统中关于财务管理、资源分配或者工作流程管理的模块。在OA系统中,这类功能通常涉及到日常的报销审批、项目预算控制、资产管理和人力资源...
资源名称:Java就业班OA项目实战培训视频【12讲】资源目录:【】Java就业班OA项目实战01【】Java就业班OA项目实战02【】Java就业班OA项目实战03【】Java就业班OA项目实战04【】Java就业班OA项目实战05【】Java就业班...
通达Redis缓存数据库服务版本: 2015.04.16 通达定时任务服务版本: 2015.03.16 通达监控服务版本: 2015.03.16 通达手机短信服务版本: HTTP服务器软件: nginx/PHP 5.3.29 HTTP端口号: 8000 数据库软件...
在下载的压缩包`f620dacb8bc04e4b9f0c4e98f95bc46d`中,可能包含以下文件和目录: - `src`:源代码目录,包含了Java类文件,可能有实体类、DAO(数据访问对象)、Service(业务逻辑)和Controller(控制层)等。 - ...
安装原版通达OA2015试用版,通达官网下载。 下载此破解补丁,解压并覆盖myoa/webroot,即可! 软件名称: Office Anywhere 2015版 皇冠集群版 对应版本的说明 版权所有: 北京通达信科科技有限公司 ...
启明星OA系统(原启明星Portal系统)包含了新闻,通知,文档,图库和流程表单内容。...启明星OA系统 11.0 更新日志:2016-04-13对原Portal进行了大幅度精简,对由可定制页面调整为内置页面。减少使用复杂度。
方配办公自动化系统(OA)是一款永久免费、功能强大的办公OA系统。方配办公自动化系统(OA) 1.2 更新日志:2015-04-191.更新优化工作流引擎2.新增公告发布应用3.新增附件阅读器应用4.更新后台版本至最新版本4.7
3. **信息发布制度**:项目文档应及时更新并提交给客户,上传至OA系统供所有项目组成员查阅。项目进度通过电子邮件在每周例会后发布,重大事项需通过正式邮件通知所有相关成员。 4. **问题跟踪制度**:任何在项目...
(版本:1.0 2006.04.05) 1.同时支持多种数据库。 2.程序模块化编写,各功能模块基本都已进行封装,调用方便。 3.采用仿C/S操作界面,操作简单,易于上手,界面仿江南行客的NET-OA系统,功能不相同。 4.重要...
3、 通达OA 精灵版本:最新版本号 2011-04-28(去除通达官方信息及链接,已封装,安装即可) 4、 邮件代理服务程序:最新版本号 2011-04-28 补丁 5、 定时任务服务版本:最新版本号 2010-12-03补丁 6、 守护服务...
在“公司帮手免费OA发布包2015.04.15”中,我们可以推测这是一次在2015年4月15日发布的更新版本。以下将详细解析OA系统的一些核心知识点: 1. **协同工作**:OA系统的核心在于协同工作,它通过网络平台使企业员工...
北大青鸟 Accp 5.0 电子课件 Y2 HR CRM OA B2C毕业设计项目开发(HR CRM OA B2C Project) 共计15个压缩包,需要全部下载才能解压.
5. **版本控制**:"OA最新版MyOffice--11-04"表明这是在11月4日更新的最新版本,可能包含了一些新功能、性能优化或bug修复。 6. **源代码注释**:描述中提到源代码注释齐全,这对于开发者来说是非常宝贵的资源,...
1. 安装JDK:通常会将JDK安装文件(如j2sdk-1_4_2_04-windows-i586-p.exe)下载并执行,安装路径可自定义,这里假设安装在C:\j2sdk1.4.2_04。 2. 配置环境变量: - JAVA_HOME:指向JDK的安装路径,例如C:\j2sdk...
3. 模块功能详细设计:2013/08/04。 4. 对象设计:2013/08/05。 5. 升级及审核签字确认系统:2013/08/08。 OA 办公自动化管理系统的详细设计说明书包括: 1. 目录:包括目录、引言、总体设计、模块设计、对象设计...
公司帮手免费OA v2015.04.15发布。 1、增加部分模块的浏览记录功能。 2、增加流程审批功能。 3、修复部分BUG。 4、切记、如果是更新,更新前先备份好之前的程序和数据库。 ===================================...
2021/04/08 致远OA 致远OA 前台getshell 复现 致远OA任意文件上传 2021/04/08 齐治堡垒机 存在命令执行漏洞,POC疑似已流出 2021/04/08 深信服EDR(历史漏洞) 深信服EDR远程命令执行 CNVD-2020-46552 2021/04/08 ...
"ItcastOA04_itcastoa_"这个标题可能代表了一个在线教育平台如传智播客(Itcast)的OA(Online Assessment)课程中的第四部分,专注于Java集合框架的学习。描述中提到这是关于“自学的java关于集合框架的一些程序”...
04、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务! 05、禁止用本站源码用于非法商业用途,不得违反国家法律,否则后果自负! 06、如发现资源链接无法下载、失效或广告,请联系管理员或提交工单...