前期利用毕业实习的时间开发人力资源系统,实现了基本的组织机构管理,包括部门、职务、岗位管理,时间关系没有实现人员信息的各种操作。前端利用ExtJS框架完成同一个页面的所有操作(完全利用JS代码实现),后台本来利用Spring和Hibernate,无奈Spring用的不够熟练且时间不允许,所以改为Struts了。考虑到一部分数据库访问操作逻辑较简单且频率较低,故利用JDBC处理,而其他的则有Hibernate来处理。
以下为系统各部分主干代码,稍后会放出代码供下载:
配置文件:
struts-config.xml
...
<struts-config>
<data-sources />
<form-beans>
<form-bean name="loginForm"
type="com.idealab.struts.form.LoginForm" />
<form-bean name="newCorpForm"
type="com.idealab.struts.form.NewCorpForm" />
<form-bean name="newUserForm"
type="com.idealab.struts.form.NewUserForm">
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards>
<forward name="index" path="/index.jsp"></forward>
</global-forwards>
<action-mappings>
<!-- 登录 -->
<action attribute="loginForm" input="/login.jsp"
name="loginForm" path="/logon" scope="request"
type="com.idealab.struts.action.LoginAction" />
<!-- 新建不同种类(部门,职务,岗位) -->
<action path="/new" scope="request"
type="com.idealab.struts.action.NewAction" />
<!-- 系统初始化中新建用户 -->
<action attribute="newUserForm" name="newUserForm"
path="/newUser" scope="request"
type="com.idealab.struts.action.NewUserAction" />
<!-- 获得公司 -->
<action path="/getCorp" scope="request"
type="com.idealab.struts.action.GetCorpAction" />
<!-- 加载各种类型的树节点 -->
<action path="/getNodes"
type="com.idealab.struts.action.GetNodesAction" />
<!-- 根据树节点Id加载信息到表单中 -->
<action path="/getById"
type="com.idealab.struts.action.GetByIdAction" />
<!-- 更新信息 -->
<action path="/update"
type="com.idealab.struts.action.UpdateAction" />
<!-- 删除 -->
<action path="/delete"
type="com.idealab.struts.action.DeleteAction" />
</action-mappings>
<message-resources
parameter="com.idealab.struts.ApplicationResources" />
</struts-config>
...
hibernate.cfg.xml
...
<session-factory>
<property name="connection.username">root</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/ehr
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="myeclipse.connection.profile">
MysqlDriver
</property>
<property name="connection.password">ideal</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<mapping resource="com/idealab/dao/Sysuser.hbm.xml" />
<mapping resource="com/idealab/dao/Corp.hbm.xml" />
<mapping resource="com/idealab/dao/Emp.hbm.xml" />
<mapping resource="com/idealab/dao/Empdoc.hbm.xml" />
</session-factory>
...
前端主页面JS脚本:
Ext.ns('Ext.mypanels');
Ext.onReady(function() {
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
Ext.mypanels.contentPanel = new Ext.TabPanel({
region : 'center',
id : 'tabPanel',
autoDestroy:false,/*处理页签关闭后无法再次打开的问题*/
deferredRender : false,
activeTab : 0,
iconCls : 'tabs',
items : {
title : '主页',
autoScroll : true,
layout : 'table',
layoutConfig : {
columns : 1
},
items : [{
title : '公告信息',
html : '<img src="lib/images/arch_eHR.jpg" width=830 height=450/>'
}]
}
});
/* 导航栏面板定义 */
var navPanel = new Ext.Panel({
region : 'west',
id : 'nav_panel',
name : 'navPanel',
title : '导航栏',
split : true,
border : true,
collapsible : false,
width : 170,
minSize : 170,
maxSize : 170,
layout : 'accordion',
layoutConfig : {
animate : true,
fill : true,
autoWidth : true
},
items : [{
title : '系统管理',
items : [Ext.mypanels.tree.navAdminTree]
}, {
title : '自助操作',
items : [Ext.mypanels.tree.navSelfinfoTree]
}]
});
Ext.mypanels.tree.navAdminTree.on('click', onClickTreeNode);
Ext.mypanels.tree.navSelfinfoTree.on('click', onClickTreeNode);
/* 主面板 */
var viewport = new Ext.Viewport({
layout : 'border',
items : [{
region : 'north',
contentEl : 'header',
split : true, // 可改变框体大小
border : true,
collapsible : true, // 可收缩
height : 72,
minSize : 72,
maxSize : 72
}, {
region : 'south',
contentEl : 'footer',
split : true,
border : true,
collapsible : true,
height : 35,
minSize : 30,
maxSize : 30
}, navPanel, Ext.mypanels.contentPanel]
});
});
/*动态导入js文件*/
function importJS(src) {
/*
* fpath = fpath.replace(/\./g,'\/'); document.write('<script
* type="text/javascript" src="'+ fpath + '.js"></script>');
*/
src=src.replace(/\./g,'\/');
jpath=src+'.js';
var headerDom = document.getElementsByTagName('head').item(0);
var jsDom = document.createElement('script');
jsDom.type = 'text/javascript';
jsDom.src = jpath;
headerDom.appendChild(jsDom);
}
function onClickTreeNode(node) {
if (node.getDepth() > 1) {
importJS('lib.main.'+node.id);
var n = Ext.mypanels.contentPanel.getComponent(node.id);
if (!n) { // 判断是否已经打开该面板
n = Ext.mypanels.contentPanel.add({
'id' : node.id,
'title' : node.text,
contentEl : 'tab_'+node.id,/*各个模块分别在nav_*.js中定义,且每个模块相应的显示在tab_*区域中*/
closable : true,
iconCls : 'tabs'
/*
* autoLoad : { url : 'nodes.jsp?url='+node.id, scope :
* this, scripts : true } //
* 通过autoLoad属性载入目标页,如果要用到脚本,必须加上scripts属性
*/});
}
Ext.mypanels.contentPanel.setActiveTab(n);
}
}
分享到:
相关推荐
Spring+Struts+hibernate+Extjs的客户关系管理系统源代码
Struts+Spring+Hibernate+ExtJs毕业系统
这是 struts+ hibernate +spring +extjs 完整的java 商场vip消费查询系统项目源码 可以直接导入eclipse、myeclipse。内附数据库文件 mysql版,也可改成其它数据库, 换对应数据库连接驱动和修改sql语法即可
J2EE最新精品项目源码Struts2.0+Hibernate+Spring+ExtJS
Struts2+Spring+Hibernate+ExtJS开发CRUD功能
Struts+Spring+Hibernate+ExtJs学生学籍系统毕业设计
extjs+struts+hibernate+spring(物流管理系统) 中的jar包
ExtJS4+Accordion+SERVLET/STRUTS2+JSON+Ext.tree.Panel实例
Spring3.0+Hibernate4.0+SpringMVC整合ExtJS4是一个集成的应用系统,希望对学习javaweb和extjs的朋友有帮助
extjs+struts+hibernate+spring(物流管理系统) 中的jar包
本系统采用Struts+Spring+Hibernate+Extjs结合技术,严格按照软件工程学的方法进行开发,应用数据库为Oracle 10g。既采用Oracle数据库的坚强数据核心,又结合Struts+Spring+Hibernate框架的稳定性和实用性,还...
NULL 博文链接:https://guangtingbulian.iteye.com/blog/648436
Struts+Spring+Hibernate+ExtJs不冲突的jar!请下载lib和lib1两个文件
基于extjs+struts+hibernate+spring实现的物流管理系统,真的很不错的哦,并附有sql数据库,供大家学习交流 由于文件较大,分为三部分下载,这部分为源码,其余两部分为lib包中的jar。
extjs+spring+struts+hibernate整合实例
struts2+Hibernate3.3+spring2.5.6+extjs3.2 图书管理系统
人力资源管理系统Struts_Spring_Hibernate_Extjs 人力资源管理系统Struts_Spring_Hibernate_Extjs 人力资源管理系统Struts_Spring_Hibernate_Extjs 人力资源管理系统Struts_Spring_Hibernate_Extjs 人力资源管理系统...
Hibernate+Spring+Struts2+extjs开发的图文管理系统,里面有很多实用的业务逻辑代码,
Struts2.18+Spring2.56+Hibernate3+Extjs实现登陆、修改密码、找回密码等功能,其中涵盖了邮件发送、java中使用正则表达式、json的使用等功能