- 浏览: 152321 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
-
hx0637:
楼主!小弟要面临面试了,能否指导下小弟?
面试 深圳一家公司的 -
kljismi:
你好,我现在正在开这项目的代码,但是我不明白@Privileg ...
权限管理模块分析 -
yzhw:
终于找到了
ImageSizer.java -
sunloveny:
国
struts国际化 -
jackotty:
谢谢楼主的分享
struts validator验证框架
提供人员管理、模块管理、角色管理、用户管理相关的代码。
同时,需注意,在分页中实现了动态更改每页显示行数的功能(请参考机构管理的实例)
同时,需注意,在分页中实现了动态更改每页显示行数的功能(请参考机构管理的实例)
package com.bjsxt.oa.manager.impl; import com.bjsxt.oa.PagerModel; import com.bjsxt.oa.manager.ModuleManager; import com.bjsxt.oa.manager.SystemException; import com.bjsxt.oa.model.Module; public class ModuleManagerImpl extends AbstractManager implements ModuleManager { public void addModule(Module module, int parentId) { if(parentId != 0){ module.setParent(findModule(parentId)); } getHibernateTemplate().save(module); } public void delModule(int moduleId) { Module module = findModule(moduleId); if(module.getChildren().size() > 0){ throw new SystemException("模块【"+module.getName()+"】存在有子模块,不允许删除!"); } getHibernateTemplate().delete(module); } public Module findModule(int moduleId) { return (Module)getHibernateTemplate().load(Module.class,moduleId); } public PagerModel searchModules(int parentId) { String hql = "select m from Module m"; if(parentId == 0){ //返回顶级模块列表 hql = hql + " where m.parent is null"; }else{ hql = hql + " where m.parent.id = "+parentId; } return searchPaginated(hql); } public void updateModule(Module module, int parentId) { if(parentId != 0){ module.setParent(findModule(parentId)); } getHibernateTemplate().update(module); } }
package com.bjsxt.oa.manager.impl; import com.bjsxt.oa.PagerModel; import com.bjsxt.oa.manager.PersonManager; import com.bjsxt.oa.model.Organization; import com.bjsxt.oa.model.Person; public class PersonManagerImpl extends AbstractManager implements PersonManager { public void addPerson(Person person, int orgId) { if(orgId != 0){ person.setOrg((Organization)this.getHibernateTemplate().load(Organization.class, orgId)); } getHibernateTemplate().save(person); } public void delPerson(int personId) { getHibernateTemplate().delete(findPerson(personId)); } public Person findPerson(int personId) { return (Person)getHibernateTemplate().load(Person.class, personId); } public PagerModel searchPersons() { return searchPaginated("from Person"); } public void updatePerson(Person person, int orgId) { if(orgId != 0){ person.setOrg((Organization)this.getHibernateTemplate().load(Organization.class, orgId)); } getHibernateTemplate().update(person); } public PagerModel searchPersons(int orgId) { return searchPaginated("select p from Person p where p.org.id = "+orgId); } }
package com.bjsxt.oa.manager.impl; import com.bjsxt.oa.PagerModel; import com.bjsxt.oa.manager.RoleManager; import com.bjsxt.oa.model.Role; public class RoleManagerImpl extends AbstractManager implements RoleManager { public void addRole(Role role) { getHibernateTemplate().save(role); } public void delRole(int roleId) { getHibernateTemplate().delete(findRole(roleId)); } public Role findRole(int roleId) { return (Role)getHibernateTemplate().load(Role.class, roleId); } public PagerModel searchRoles() { return searchPaginated("from Role"); } public void updateRole(Role role) { getHibernateTemplate().update(role); } }
package com.bjsxt.oa.manager.impl; import java.util.Calendar; import java.util.Date; import java.util.List; import com.bjsxt.oa.PagerModel; import com.bjsxt.oa.manager.SystemException; import com.bjsxt.oa.manager.UserManager; import com.bjsxt.oa.model.Person; import com.bjsxt.oa.model.Role; import com.bjsxt.oa.model.User; import com.bjsxt.oa.model.UsersRoles; public class UserManagerImpl extends AbstractManager implements UserManager { public void addOrUpdateUserRole(int userId, int roleId, int orderNo) { //首先根据userId和roleId,判断这两者之间是否已建立关联 UsersRoles ur = findUsersRoles(userId, roleId); if(ur == null){ ur = new UsersRoles(); ur.setRole((Role)getHibernateTemplate().load(Role.class, roleId)); ur.setUser((User)getHibernateTemplate().load(User.class, userId)); ur.setOrderNo(orderNo); getHibernateTemplate().save(ur); return; } ur.setOrderNo(orderNo); getHibernateTemplate().update(ur); } public void addUser(User user, int personId) { if(personId == 0){ throw new SystemException("建立用户帐号时,人员信息不允许为空"); } user.setPerson((Person)getHibernateTemplate().load(Person.class, personId)); user.setCreateTime(new Date()); getHibernateTemplate().save(user); } public void delUser(int userId) { getHibernateTemplate().delete(findUser(userId)); } public void delUserRole(int userId, int roleId) { getHibernateTemplate().delete(findUsersRoles(userId, roleId)); } public User findUser(int userId) { return (User)getHibernateTemplate().load(User.class, userId); } public User login(String username, String password) { User user = (User)getSession() .createQuery("select u from com.bjsxt.oa.model.User u where u.username = ?") .setParameter(0, username) .uniqueResult(); if(user == null){ throw new SystemException("没有这个用户"); } if(!user.getPassword().equals(password)){ throw new SystemException("密码错误!"); } if(user.getExpireTime() != null){ //现在时间 Calendar now = Calendar.getInstance(); //失效时间 Calendar expireTime = Calendar.getInstance(); expireTime.setTime(user.getExpireTime()); //如果现在在失效时间之后 if(now.after(expireTime)){ throw new SystemException("用户帐号已失效!"); } } return user; } public List searchUserRoles(int userId) { return getHibernateTemplate().find("select ur from UsersRoles ur " + "where ur.user.id = ? order by ur.orderNo",userId); } public PagerModel searchUsers() { return searchPaginated("from com.bjsxt.oa.model.User"); } public void updateUser(User user, int personId) { if(personId == 0){ throw new SystemException("更新用户帐号时,人员信息不允许为空"); } user.setPerson((Person)getHibernateTemplate().load(Person.class, personId)); getHibernateTemplate().update(user); } //本方法被【AdminRoleAssignmentHandler】所使用 public List searchUsersOfRole(String roleName) { String hql = "select u.username from UsersRoles ur " + "join ur.user u join ur.role r where r.name = ? "; return getHibernateTemplate().find(hql,roleName); } private UsersRoles findUsersRoles(int userId,int roleId){ return (UsersRoles)getSession().createQuery( "select ur from UsersRoles ur where " + "ur.role.id = ? and ur.user.id = ?" ) .setParameter(0, roleId) .setParameter(1, userId) .uniqueResult(); } }
<%@ 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> <script type="text/javascript"> function selectPagesize(field){ document.location.href = document.all.firstpageurl.href + "&pagesize="+field.value; } </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> <a href="#" onClick="openWin('org.do?method=addInput&parentId=${orgForm.parentId }','addorg',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 items="${pm.total }" url="org.do" maxPageItems="${ps}" export="currentPageNumber=pageNumber"> <pg:param name="parentId"/> <pg:first> <a href="${pageUrl }" id="firstpageurl">首页</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> <select name="pagesize" onChange="selectPagesize(this)" > <c:forEach begin="5" end="50" step="5" var="i"> <option value="${i}" > <c:if test="${ps eq i }">selected</c:if> >${i}</option> </c:forEach> </select></TD> </TR> </TBODY> </TABLE> </center> </body> </html>
发表评论
-
oa_22
2009-02-04 22:20 1823oa_22: 结合Freemarker,将动态表单显示在公文 ... -
oa_21
2009-02-04 22:18 1227oa_21: 添加动态表单呈现层代码 - 理解批量数据的 ... -
oa_20
2009-02-04 22:15 1300oa_20: 1、创建动态表单的领域模型 FieldInp ... -
oa_18
2009-02-04 22:07 870oa_18: 实现WorkflowManager接口,以及流 ... -
oa_17
2009-02-04 22:03 1236集成JBPM到OA系统,并实现JbpmFacade接口 - ... -
oa_16
2009-02-04 21:58 957oa_16: 根据用例分析的结果,创建WorkflowMan ... -
oa_15:
2009-02-04 21:55 897oa_15: 根据公文流转领域模型创建相关的实体类,并使用x ... -
oa_14
2009-02-04 21:51 1345利用JSTL函数实现即时认证 - SecurityFunc ... -
oa_13
2009-02-04 21:35 1399oa_13: 实现登录功能 - LoginAction ... -
oa_11
2009-02-04 20:51 919初步实现授权管理的界面,重点在于: 1、理解DWR如何使用,理 ... -
oa_10
2009-01-18 12:54 1145提供初始化数据的代码 ... -
oa_08
2009-01-18 12:08 1067创建AclManager接口,并实现 - 理解权限管理子系统 ... -
oa_07
2009-01-18 11:54 1293引入Ant和Xdoclet的支持, ... -
oa_06
2009-01-18 11:48 1065利用ThreadLocal实现分页参数的透明传输(通过使用Th ... -
oa_05
2009-01-18 11:41 996从现有的分页处理方案中,抽象出AbstractManager, ... -
oa_04
2009-01-18 11:30 1182利用Pager-Taglib实现机构 ... -
oa_03
2009-01-18 11:22 1195在做完机构管理的业务逻辑之后,下面考虑呈现层的实现。 1、 ... -
oa_02
2009-01-18 11:05 1039整合Spring和Hibernate之后,对于业务逻辑类的测试 ... -
oa_01+
2009-01-18 10:55 1245package com.bjsxt.oa.manager.im ... -
oa_01
2009-01-18 10:48 1290oa_01: 1、建立机构管理的实体类,并映射【重点理解多对 ...
相关推荐
在本项目中,我们关注的是一个基于...总之,这个"oa_09.rar"项目展示了一个完整的基于Java的OA系统实现,涵盖了从后端开发、数据库设计到服务器部署的全过程,对于学习和理解企业级Java应用开发具有很高的参考价值。
oasystem_2016-09-12.sql
7. **oa_gl_09**:这个文件名可能代表“OA系统的财务/管理模块的第九个部分”,“gl”可能是“会计”或“管理”的缩写,表示该部分代码专注于企业的财务管理功能。 综合以上知识点,我们可以推测“oa系统代码9”...
在实际应用中,"oa_09"可能代表该系统的一个特定版本或者一个特定的模块,它可能包含了公文流转实现的详细代码、配置文件、数据库脚本等资源。对于开发人员来说,理解这些资源的结构和作用,是深入学习和优化"jpbm...
数飞OA网络协同办公软件是深圳市数飞尔有限公司专门为企业、政府、学校等单位制定的办公管理软件。本软件主要解决过去复杂、...数飞OA系统2010beta09版下载地址:http://www.saas88.com/download/SZOA2010beta09.rar
信呼协同办公OA系统是开源的一款办公系统,跨平台的系统,支持APP,pc网页版,pc客户端等。简介:1、让每个企业单位都有自己的工作系统。2、移动,免费开源工作系统,数据全部自己管理。3、自定义管理应用,模块数据...
OA工作流(2012-09-23).zip OA工作流(2012-09-23).zip OA工作流(2012-09-23).zip OA工作流(2012-09-23).zipOA工作流(2012-09-23).zip OA工作流(2012-09-23).zip OA工作流(2012-09-23).zip
小微OA系统是一个开源的,简单易用,审批灵活,...小微OA系统领悟版 1.0 更新日志:2015-09-06 1.编辑器修改为Tinycme 2.修复邮件接受两个以上附件时错误 3。简化任务流程 取消接受环节。 4。改善微信企业号相关功能。
2018.09.27修复更新了 1.创建客户资料,自动创建默认联系人。 2.修复当设置员工管理范围的时候,只能看到自己的客户。 看不到自己管理范围其他员工的客户。 跟单,订单,合同,售后,费用。 3.修复了通知栏目,跟单...
信呼协同办公OA系统特点: 1、让每个企业单位都有自己的工作系统。 2、移动,免费开源工作系统,数据全部自己管理。 3、自定义管理应用,模块数据,权限分配。 4、单据快速提醒推送,重要通知任务及时提醒。 5、即时...
北大青鸟 Accp 5.0 电子课件 Y2 HR CRM OA B2C毕业设计项目开发(HR CRM OA B2C Project) 共计15个压缩包,需要全部下载才能解压.
基于RuoYi开发+flowable实现OA办公系统,java项目。 eclipse和idea都能打开运行。 推荐环境配置:eclipse/idea jdk1.8 maven mysql 前端技术:Layui,Ajax,Json 后端技术:SpringBoot,MyBatis 本系统共分为两个角色...
本文档主要以实例的形式来讲述办公自动化软件的测试用例的设计方法
OA(Office Automation)办公系统是一种基于信息技术的管理系统...在“oa09”这个文件中,很可能是关于一个特定版本的OA系统的详细资料,包括系统配置、使用手册、更新日志等,对于理解和使用该系统具有重要参考价值。
信呼协同办公OA系统是开源的一款办公系统,跨平台的系统,支持APP,pc网页版,pc客户端等。 信呼协同办公OA系统特点: ...日期:2020-12-09 1、完善系统安全性。 2、系统优化等。 3、添加人员证件等模块。
java+mysql学生学籍后台管理系统OA源码 2020-09-09 其它源码、模板 379 推广 java+mysql学生学籍后台管理系统OA源码 PS 本源码提供给大家学习研究借鉴美工之用,请勿用于商业和非法用途,无任何技术支持! 运行...
- **时间**:2015年11月26日09:35至2015年11月28日23:59。 - **问卷设计**:包含10道必答选择题(其中9道单选、1道多选),以及4道选填题目供参与者提出具体意见和建议。 - **内容覆盖**:主要涉及界面美观度、易用...
java开发oa办公系统源码 oa办公系统 前端使用webpack,react,ant desidn,react-redux开发, 后端同事提供,环境是tomcat7.x,开发语言java,目录结构: 资源文件:ROOT/resouces/.js | .css 页面:ROOT/WEB-INF/page...