大数据正式41之汇通项目 小灰灰 2022-06-02 09:23 473阅读 0赞 # 大数据正式41之汇通项目 # ### 先睹为快 ### * 登录页面 * ![nD8ui2d.png][] * 系统管理 * ![20180109234346673][] * 部门管理 * ![vQmnJGD.png][] * 用户管理 * ![MYh7JzV.png][] * 角色管理 * ![x4Mg7Pg.png][] * 模块管理 * ![PnQl7Xf.png][] ### 数据库 ### * 数据库 * ![PrukGwi.png][] * 表展示 * 总设计 * ![9eVzxfR.png][] * 具体结构 * 部门表 * ![QCXv6a6.png][] * 模块表 * ![rvJNS7C.png][] * 角色-模块表 * ![8mYa8k8.png][] * 角色表 * ![cz0zwZN.png][] * 角色-用户表 * ![wS6QXHq.png][] * 用户信息表 * ![xoc70jL.png][] * 用户表 * ![tq6zNfL.png][] * 具体sql # # /* SQLyog Ultimate - MySQL GUI v8.2 MySQL - 5.6.24 : Database - ht ********************************************************************* */ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; CREATE DATABASE /*!32312 IF NOT EXISTS*/`ht` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `ht`; /*Table structure for table `dept_p` */ DROP TABLE IF EXISTS `dept_p`; CREATE TABLE `dept_p` ( `DEPT_ID` varchar(40) NOT NULL, `PARENT_ID` varchar(40) DEFAULT NULL COMMENT '自关联,多对一', `DEPT_NAME` varchar(50) DEFAULT NULL, `STATE` int(11) DEFAULT NULL COMMENT '1启用0停用', `CREATE_BY` varchar(40) DEFAULT NULL, `CREATE_DEPT` varchar(40) DEFAULT NULL, `CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `UPDATE_BY` varchar(40) DEFAULT NULL, `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`DEPT_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Data for the table `dept_p` */ insert into `dept_p`(`DEPT_ID`,`PARENT_ID`,`DEPT_NAME`,`STATE`,`CREATE_BY`,`CREATE_DEPT`,`CREATE_TIME`,`UPDATE_BY`,`UPDATE_TIME`) values ('0','--无上级--','551杀神俱乐部',1,NULL,NULL,'2018-01-08 12:52:39',NULL,'0000-00-00 00:00:00'),('01','0','法师部',1,NULL,NULL,'2018-01-08 12:52:59',NULL,'0000-00-00 00:00:00'),('02','0','打野部',1,NULL,NULL,'2018-01-08 12:53:19',NULL,'0000-00-00 00:00:00'),('03','0','射手部',1,NULL,NULL,'2018-01-08 12:54:10',NULL,'0000-00-00 00:00:00'); /*Table structure for table `module_p` */ DROP TABLE IF EXISTS `module_p`; CREATE TABLE `module_p` ( `MODULE_ID` varchar(40) NOT NULL, `PARENT_ID` varchar(40) DEFAULT NULL COMMENT '父模块ID', `NAME` varchar(100) DEFAULT NULL, `CTYPE` int(11) DEFAULT NULL COMMENT '1主菜单/2左侧菜单/3按钮', `STATE` int(11) DEFAULT NULL COMMENT '1启用0停用', `ORDER_NO` int(11) DEFAULT NULL, `REMARK` varchar(100) DEFAULT NULL, `CREATE_BY` varchar(40) DEFAULT NULL, `CREATE_DEPT` varchar(40) DEFAULT NULL, `CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `UPDATE_BY` varchar(40) DEFAULT NULL, `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`MODULE_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Data for the table `module_p` */ insert into `module_p`(`MODULE_ID`,`PARENT_ID`,`NAME`,`CTYPE`,`STATE`,`ORDER_NO`,`REMARK`,`CREATE_BY`,`CREATE_DEPT`,`CREATE_TIME`,`UPDATE_BY`,`UPDATE_TIME`) values ('048bc420-b63b-4c46-a7f4-67eb2915d441','b152749f-af17-42c4-96fb-028041e6c442','历史购销合同查询',NULL,1,NULL,'货运管理',NULL,NULL,'2018-01-09 18:44:29',NULL,'0000-00-00 00:00:00'),('1caefd74-d26a-44c5-a1bc-91fa18ff753f','f9ded96d-aafa-46b2-b4c3-efe18336f5e4','合同查询',NULL,1,NULL,'货运管理-合同查询',NULL,NULL,'2018-01-09 18:41:51',NULL,'0000-00-00 00:00:00'),('22192cf2-3cbe-4ee2-a1e3-62fe015c9241','b152749f-af17-42c4-96fb-028041e6c442','用户管理',NULL,1,NULL,'系统管理-用户管理',NULL,NULL,'2018-01-08 13:38:51',NULL,'0000-00-00 00:00:00'),('317d4c8a-5079-4e79-b324-c4d0f0072d48','453f46e8-f7cb-4621-afac-64185169c7d0','系统代码',NULL,1,NULL,'基础信息',NULL,NULL,'2018-01-09 18:45:13',NULL,'0000-00-00 00:00:00'),('433c572b-0987-4e5c-a382-8c6a68262fa7','b152749f-af17-42c4-96fb-028041e6c442','角色管理',NULL,1,NULL,'系统管理-角色管理',NULL,NULL,'2018-01-08 13:39:19',NULL,'0000-00-00 00:00:00'),('453f46e8-f7cb-4621-afac-64185169c7d0','--无上级--','基础信息',NULL,1,NULL,'基础信息模块',NULL,NULL,'2018-01-08 13:43:21',NULL,'0000-00-00 00:00:00'),('50989970-a6c2-4bab-b131-9810e8194dcf','b152749f-af17-42c4-96fb-028041e6c442','部门管理',NULL,1,NULL,'系统管理-部门管理',NULL,NULL,'2018-01-08 13:37:48',NULL,'0000-00-00 00:00:00'),('5a8b2fb9-8f1c-4103-8cc8-0a2fe74d0870','f9ded96d-aafa-46b2-b4c3-efe18336f5e4','出口报运',NULL,1,NULL,'货运管理-出口报运',NULL,NULL,'2018-01-09 18:42:43',NULL,'0000-00-00 00:00:00'),('6c49a9bc-6406-4f40-91d0-ff38cafaaf4d','b152749f-af17-42c4-96fb-028041e6c442','模块管理',NULL,1,NULL,'系统管理-模块管理',NULL,NULL,'2018-01-08 13:39:52',NULL,'0000-00-00 00:00:00'),('89f15873-e069-418b-b53a-8f41ddae30b0','f9ded96d-aafa-46b2-b4c3-efe18336f5e4','出口跟踪',NULL,1,NULL,'货运管理-出口跟踪',NULL,NULL,'2018-01-09 18:43:16',NULL,'0000-00-00 00:00:00'),('954c86cd-475a-4baf-a70d-83c499ecc94e','453f46e8-f7cb-4621-afac-64185169c7d0','厂家信息',NULL,1,NULL,'基础信息-厂家信息',NULL,NULL,'2018-01-09 18:45:58',NULL,'0000-00-00 00:00:00'),('99bd1061-798e-4010-8da3-329575df5d3f','9e98ed09-a136-45b6-acda-2744b13bfa41','我的常用功能',NULL,1,NULL,'系统首页-我的常用功能',NULL,NULL,'2018-01-09 18:32:21',NULL,'0000-00-00 00:00:00'),('9e98ed09-a136-45b6-acda-2744b13bfa41','--无上级--','系统首页',NULL,1,NULL,'系统首页模块',NULL,NULL,'2018-01-08 13:43:35',NULL,'0000-00-00 00:00:00'),('a12c467b-55f4-4f54-9a93-8e2d8e279494','9e98ed09-a136-45b6-acda-2744b13bfa41','用户设定',NULL,1,NULL,'系统首页-用户设定',NULL,NULL,'2018-01-09 18:33:02',NULL,'0000-00-00 00:00:00'),('b152749f-af17-42c4-96fb-028041e6c442','--无上级--','系统管理',NULL,1,NULL,'系统管理模块',NULL,NULL,'2018-01-08 13:32:34',NULL,'0000-00-00 00:00:00'),('ecf5560d-9f0b-43e2-afc5-0e6814814752','f9ded96d-aafa-46b2-b4c3-efe18336f5e4','出货表',NULL,1,NULL,'货运管理-出货表',NULL,NULL,'2018-01-09 18:41:14',NULL,'0000-00-00 00:00:00'),('f15a824d-dd8c-4f3e-bc96-3e8a99d011ad','9e98ed09-a136-45b6-acda-2744b13bfa41','个人工作台',NULL,1,NULL,'系统首页-个人工作台',NULL,NULL,'2018-01-09 18:31:35',NULL,'0000-00-00 00:00:00'),('f9ded96d-aafa-46b2-b4c3-efe18336f5e4','--无上级--','货运管理',NULL,1,NULL,'货运管理模块',NULL,NULL,'2018-01-08 13:31:34',NULL,'0000-00-00 00:00:00'),('fbde3d1a-ee83-4070-868c-ad7d2d3af40f','f9ded96d-aafa-46b2-b4c3-efe18336f5e4','购销合同',NULL,1,NULL,'货运管理-购销合同',NULL,NULL,'2018-01-09 18:40:38',NULL,'0000-00-00 00:00:00'); /*Table structure for table `role_module_p` */ DROP TABLE IF EXISTS `role_module_p`; CREATE TABLE `role_module_p` ( `MODULE_ID` varchar(40) DEFAULT NULL, `ROLE_ID` varchar(40) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Data for the table `role_module_p` */ insert into `role_module_p`(`MODULE_ID`,`ROLE_ID`) values ('453f46e8-f7cb-4621-afac-64185169c7d0','3'),('9e98ed09-a136-45b6-acda-2744b13bfa41','3'),('b152749f-af17-42c4-96fb-028041e6c442','3'),('22192cf2-3cbe-4ee2-a1e3-62fe015c9241','3'),('433c572b-0987-4e5c-a382-8c6a68262fa7','3'),('50989970-a6c2-4bab-b131-9810e8194dcf','3'),('6c49a9bc-6406-4f40-91d0-ff38cafaaf4d','3'),('f9ded96d-aafa-46b2-b4c3-efe18336f5e4','3'),('453f46e8-f7cb-4621-afac-64185169c7d0','1'),('9e98ed09-a136-45b6-acda-2744b13bfa41','1'),('b152749f-af17-42c4-96fb-028041e6c442','1'),('22192cf2-3cbe-4ee2-a1e3-62fe015c9241','1'),('f9ded96d-aafa-46b2-b4c3-efe18336f5e4','1'),('453f46e8-f7cb-4621-afac-64185169c7d0','2'),('9e98ed09-a136-45b6-acda-2744b13bfa41','2'),('b152749f-af17-42c4-96fb-028041e6c442','2'),('22192cf2-3cbe-4ee2-a1e3-62fe015c9241','2'); /*Table structure for table `role_p` */ DROP TABLE IF EXISTS `role_p`; CREATE TABLE `role_p` ( `ROLE_ID` varchar(40) NOT NULL, `NAME` varchar(30) DEFAULT NULL, `REMARKS` varchar(100) DEFAULT NULL, `ORDER_NO` int(11) DEFAULT NULL, `CREATE_BY` varchar(40) DEFAULT NULL, `CREATE_DEPT` varchar(40) DEFAULT NULL, `CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `UPDATE_BY` varchar(40) DEFAULT NULL, `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`ROLE_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Data for the table `role_p` */ insert into `role_p`(`ROLE_ID`,`NAME`,`REMARKS`,`ORDER_NO`,`CREATE_BY`,`CREATE_DEPT`,`CREATE_TIME`,`UPDATE_BY`,`UPDATE_TIME`) values ('1','输出型法师','以一当十',NULL,'白鹏',NULL,'2018-01-08 13:07:16',NULL,'0000-00-00 00:00:00'),('2','打野刺客','专杀脆皮',NULL,'白鹏',NULL,'2018-01-08 13:07:56',NULL,'0000-00-00 00:00:00'),('3','CEO','公司ceo',NULL,'白鹏',NULL,'2018-01-09 18:18:29',NULL,'0000-00-00 00:00:00'); /*Table structure for table `role_user_p` */ DROP TABLE IF EXISTS `role_user_p`; CREATE TABLE `role_user_p` ( `ROLE_ID` varchar(40) DEFAULT NULL, `USER_ID` varchar(40) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Data for the table `role_user_p` */ insert into `role_user_p`(`ROLE_ID`,`USER_ID`) values ('1','1'),('2','2'),('3','666'); /*Table structure for table `user_info_p` */ DROP TABLE IF EXISTS `user_info_p`; CREATE TABLE `user_info_p` ( `USER_INFO_ID` varchar(40) NOT NULL, `NAME` varchar(20) DEFAULT NULL, `CARD_NO` varchar(20) DEFAULT NULL, `MANAGER_ID` varchar(40) DEFAULT NULL, `JOIN_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `SALARY` decimal(8,2) DEFAULT NULL, `BIRTHDAY` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `GENDER` char(1) DEFAULT NULL, `STATION` varchar(20) DEFAULT NULL, `TELEPHONE` varchar(100) DEFAULT NULL, `USER_LEVEL` char(1) DEFAULT NULL COMMENT '4-普通用户 3-部门经理 2-副总 1-总经理 0-超级管理员', `REMARK` varchar(600) DEFAULT NULL, `ORDER_NO` int(11) DEFAULT NULL, `CREATE_BY` varchar(40) DEFAULT NULL COMMENT '登录人编号', `CREATE_DEPT` varchar(40) DEFAULT NULL COMMENT '登录人所属部门编号', `CREATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `UPDATE_BY` varchar(40) DEFAULT NULL, `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`USER_INFO_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Data for the table `user_info_p` */ insert into `user_info_p`(`USER_INFO_ID`,`NAME`,`CARD_NO`,`MANAGER_ID`,`JOIN_DATE`,`SALARY`,`BIRTHDAY`,`GENDER`,`STATION`,`TELEPHONE`,`USER_LEVEL`,`REMARK`,`ORDER_NO`,`CREATE_BY`,`CREATE_DEPT`,`CREATE_TIME`,`UPDATE_BY`,`UPDATE_TIME`) values ('1','安琪拉','140108199412301212','--无--','2018-01-08 13:01:06','88888.00','1994-12-30 00:00:00','女','法输出','1104561823','4','输出型选手',1,NULL,NULL,'0000-00-00 00:00:00','白鹏','2018-01-08 00:00:00'),('2','李白','140108199512301212','--无--','2018-01-08 13:06:15','66666.00','1995-12-30 00:00:00','男','刺客','1141600388','4','专杀脆皮',2,NULL,NULL,'0000-00-00 00:00:00','白鹏','2018-01-08 00:00:00'),('4','孙尚香','1401081992321','-1','2018-01-09 10:08:04','88866.00','2018-01-09 10:08:04','女','射手输出','1353456687','4','射手超强输出',4,NULL,NULL,'0000-00-00 00:00:00',NULL,'0000-00-00 00:00:00'),('666','白鹏','140108199412306666','--无--','2018-01-09 18:51:30','65535.00','2018-01-09 00:00:00','男','CEO','15034031272','0','管理所有',666,NULL,NULL,'0000-00-00 00:00:00','白鹏','2018-01-09 00:00:00'); /*Table structure for table `user_p` */ DROP TABLE IF EXISTS `user_p`; CREATE TABLE `user_p` ( `USER_ID` varchar(40) NOT NULL, `DEPT_ID` varchar(40) DEFAULT NULL, `USERNAME` varchar(50) DEFAULT NULL, `PASSWORD` varchar(64) DEFAULT NULL, `STATE` int(11) DEFAULT NULL COMMENT '1启用0停用', `CREATE_BY` varchar(40) DEFAULT NULL, `CREATE_DEPT` varchar(40) DEFAULT NULL, `CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `UPDATE_BY` varchar(40) DEFAULT NULL, `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`USER_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Data for the table `user_p` */ insert into `user_p`(`USER_ID`,`DEPT_ID`,`USERNAME`,`PASSWORD`,`STATE`,`CREATE_BY`,`CREATE_DEPT`,`CREATE_TIME`,`UPDATE_BY`,`UPDATE_TIME`) values ('1','01','anqila','573b1ca71b2cd0a8793cb31bf4c41721',1,'白鹏',NULL,'2018-01-09 11:46:50',NULL,'0000-00-00 00:00:00'),('2','02','libai','3e187c08c33ac48153b6b99cc5493a06',1,'白鹏',NULL,'2018-01-09 11:47:11',NULL,'0000-00-00 00:00:00'),('4','03','sunshangxiang','2b4264aaf551aacf93e734ba25356cbd',1,'白鹏',NULL,'2018-01-09 10:08:04',NULL,'0000-00-00 00:00:00'),('666','0','baipeng','82e873b1b7af77e9078f9989d13dea05',1,'白鹏',NULL,'2018-01-09 18:51:30',NULL,'0000-00-00 00:00:00'); /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; ### 项目结构 ### * ![GVHWeNv.png][] ### 关键代码 ### * main * java * com * peng * controller * DeptController * HomeController * LoginController * ModuleController * RoleController * UserController * mapper * DeptMapper * ModuleMapper * RoleMapper * UserInfoMapper * UserMapper * pojo * BaseEntity * Dept * Module * Role * User * UserInfo * service * DeptService * DeptServiceImpl * ModuleService * ModuleServiceImpl * RoleService * RoleServiceImpl * UserInfoService * UserInfoServiceImpl * UserService * UserServiceImpl * shiro * AuthMatcher # # package com.peng.shiro; import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.credential.SimpleCredentialsMatcher; import org.apache.shiro.crypto.hash.Md5Hash; /** * 加密 * * @author Administrator * */ public class AuthMatcher extends SimpleCredentialsMatcher { // 对原材料的密码进行加密 @Override public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) { // 对原材的密码进行加密 UsernamePasswordToken upToken = (UsernamePasswordToken) token; String password = String.valueOf(upToken.getPassword()); Md5Hash m5 = new Md5Hash(password, upToken.getUsername(), 3); upToken.setPassword(m5.toString().toCharArray()); return super.doCredentialsMatch(upToken, info); } } * AuthRealm # # package com.peng.shiro; import java.util.List; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.authz.SimpleAuthorizationInfo; import org.apache.shiro.realm.SimpleAccountRealm; import org.apache.shiro.subject.PrincipalCollection; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import com.peng.pojo.User; import com.peng.service.UserService; /** * 原材料 * * @author Administrator * */ public class AuthRealm extends SimpleAccountRealm { @Autowired @Qualifier("userService") private UserService userService; // 登录原材料 @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { // 需要给安全中心提供登录校验的原材料【用户登录的信息】【正确的信息(数据库中的数据)】 UsernamePasswordToken upToken = (UsernamePasswordToken) token; // 得到正确信息 User user = userService.findByUsername(upToken.getUsername()); // 登录的原材料信息[principal正确信息 credentials用户密码 realName材料类的名称] AuthenticationInfo info = new SimpleAuthenticationInfo(user, user.getPassword(), this.getName()); return info; } // 权限材料 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { // 真正的用户 User user = (User) principals.getPrimaryPrincipal(); List<String> user_permissions = userService.findModuleNamesByUserId(user.getUserId()); SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); info.addStringPermissions(user_permissions); return info; } } * resourse * mybatis * mappers * DeptMapper.xml * ModuleMapper.xml * RoleMapper.xml * userInfoMapper.xml * UserMapper.xml # # <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.peng.mapper.UserMapper"> <!-- 查询所有的用户 --> <resultMap type="User" id="userRM" autoMapping="true"> <id column="user_id" property="userId"></id> <association property="userInfo" javaType="UserInfo"> <id column="user_info_id" property="userInfoId"></id> <result column="name" property="name"></result> <result column="card_no" property="cardNo"></result> <result column="join_date" property="joinDate"></result> <result column="salary" property="salary"></result> <result column="birthday" property="birthday"></result> <result column="gender" property="gender"></result> <result column="station" property="station"></result> <result column="telephone" property="telephone"></result> <result column="user_level" property="userLevel"></result> <result column="remark" property="remark"></result> <result column="order_no" property="orderNo"></result> <result column="create_by" property="createBy"></result> <result column="create_dept" property="createDept"></result> <result column="create_time" property="createTime"></result> <result column="update_by" property="updateBy"></result> <result column="update_time" property="updateTime"></result> <association property="managerUserInfo" javaType="UserInfo"> <id column="m_id" property="userInfoId"></id> <result column="m_name" property="name"></result> </association> </association> <association property="dept" javaType="Dept"> <id column="d_id" property="deptId"></id> <result column="dept_name" property="deptName"></result> </association> </resultMap> <!-- 查询所有用户信息 --> <select id="findAll" resultMap="userRM"> SELECT * FROM (SELECT *FROM (SELECT user_id,dept_id,username,PASSWORD,state FROM user_p) u LEFT JOIN (SELECT * FROM user_info_p uip1 LEFT JOIN (SELECT user_info_id m_id,NAME m_name FROM user_info_p)uip2 ON uip1.manager_id=uip2.m_id) ui ON u.user_id=ui.user_info_id) uii LEFT JOIN (SELECT dept_id d_id,dept_name FROM dept_p) dp ON uii.dept_id=dp.d_id </select> <!-- 通过id更改状态 :这里的参数deptIds直接写在collection --> <update id="changeState"> update user_p set state=#{state} where user_id in <foreach collection="userIds" item="id" open="(" close=")" separator=",">#{id} </foreach> </update> <!-- 批量删除user:记得把该user对应的userInfo信息也删除掉 --> <delete id="deleteUserByIds"> delete from user_p where user_id in <foreach collection="array" item="id" open="(" close=")" separator=",">#{id} </foreach> </delete> <!-- 保存用户信息 --> <insert id="saveUser"> INSERT INTO user_p (user_id,dept_id,username,PASSWORD,state,create_by) VALUES(#{userId},#{dept.deptId},#{username},#{password},#{state},#{createBy}) </insert> <!-- 查询单个用户信息 --> <select id="findOneById" resultMap="userRM"> select * from(SELECT * FROM (SELECT *FROM (SELECT user_id,dept_id,username,PASSWORD,state FROM user_p) u LEFT JOIN (SELECT * FROM user_info_p uip1 LEFT JOIN (SELECT user_info_id m_id,NAME m_name FROM user_info_p)uip2 ON uip1.manager_id=uip2.m_id) ui ON u.user_id=ui.user_info_id) uii LEFT JOIN (SELECT dept_id d_id,dept_name FROM dept_p) dp ON uii.dept_id=dp.d_id) uall where uall.user_id=#{userId} </select> <!-- 更新用户 --> <update id="updateUser"> update user_p <set> <if test="dept.deptId!=null">dept_id=#{dept.deptId},</if> <if test="username!=null">username=#{username},</if> <if test="password!=null">password=#{password},</if> <if test="state!=null">state=#{state},</if> <if test="updateBy!=null">update_by=#{updateBy},</if> <if test="updateTime!=null">update_time=#{updateTime},</if> </set> where user_id=#{userId} </update> <!-- 登录查询 --> <select id="login" resultType="User"> select * from user_p where username=#{userName} and password=#{password} </select> <!-- 查询单个用户信息 --> <select id="findByUsername" resultMap="userRM"> select * from(SELECT * FROM (SELECT *FROM (SELECT user_id,dept_id,username,PASSWORD,state FROM user_p) u LEFT JOIN (SELECT * FROM user_info_p uip1 LEFT JOIN (SELECT user_info_id m_id,NAME m_name FROM user_info_p)uip2 ON uip1.manager_id=uip2.m_id) ui ON u.user_id=ui.user_info_id) uii LEFT JOIN (SELECT dept_id d_id,dept_name FROM dept_p) dp ON uii.dept_id=dp.d_id) uall where uall.username=#{username} </select> <!-- 查询用户所有的权限 --> <select id="findModuleNamesByUserId" resultType="java.lang.String"> SELECT DISTINCT NAME FROM module_p WHERE module_id IN((SELECT module_id FROM role_module_p m WHERE role_id IN(SELECT role_id FROM role_user_p WHERE user_id=#{userId}))) </select> </mapper> * sqlMapConfig.xml # # <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- 开启驼峰自动映射 --> <setting name="mapUnderscoreToCamelCase" value="true" /> <!--二级缓存的总开关 --> <setting name="cacheEnabled" value="false" /> </settings> </configuration> * spring * applicationContext.xml # # <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd "> <!-- 扫描包 --> <context:component-scan base-package="com.peng"></context:component-scan> <!-- 扫描注解 --> <context:annotation-config></context:annotation-config> <!-- 配置文件 --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:/jdbc_config.properties"></property> </bean> <!--c3p0 --> <bean id="c3p0dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driver}"></property> <property name="jdbcUrl" value="${jdbc.url}"></property> <property name="user" value="${jdbc.user}"></property> <property name="password" value="${jdbc.password}"></property> <property name="minPoolSize" value="3"></property> <!--最小连接数 --> <property name="initialPoolSize" value="5"></property> <!-- 初始化连接数 --> <property name="acquireIncrement" value="3"></property> <!-- 每次增长的个数 --> </bean> </beans> * applicationContext-mybatis.xml # # <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd "> <!-- sql的会话工厂 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 引入数据源 --> <property name="dataSource" ref="c3p0dataSource"></property> <!-- 引入核心配置文件 --> <property name="configLocation" value="classpath:/mybatis/sqlMapConfig.xml"></property> <!-- 别名包 --> <property name="typeAliasesPackage" value="com.peng.pojo" /> <!-- 引入映射文件 --> <property name="mapperLocations" value="classpath:/mybatis/mappers/*.xml"></property> </bean> <!-- Mapper接口的扫描器 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.peng.mapper"></property> </bean> </beans> * applicationContext-shiro.xml # # <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd "> <!-- 扫描包 --> <context:component-scan base-package="com.peng"></context:component-scan> <!-- 扫描注解 --> <context:annotation-config></context:annotation-config> <!-- 1.安全管理器 --> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager "> <!-- 3.将原材料注入 --> <property name="realm" ref="authRealm"></property> </bean> <!-- 2.原材料 --> <bean class="com.peng.shiro.AuthRealm" id="authRealm"> <!-- 5.给原材料加密 --> <property name="credentialsMatcher" ref="authMatcher"></property> </bean> <!-- 4.密码加密 --> <bean class="com.peng.shiro.AuthMatcher" id="authMatcher"></bean> <!-- 6.权限认证观察器 --> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor" id="advisor"> <!-- 7.注入安全管理器 --> <property name="securityManager" ref="securityManager"></property> </bean> <!-- 8.shiro的过滤工厂 --> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <!-- 9.注入安全管理器 --> <property name="securityManager" ref="securityManager"></property> <!-- 10.登录地址 (注:默认放行) --> <property name="loginUrl" value="/tologin.action"></property> <!-- 11.配置拦截和放行的地址 --> <property name="filterChainDefinitions"> <value> <!-- anon:放行;authc拦截 --> <!-- loginUrl默认放行 --> /login.action=anon <!-- /*代表所有请求;/**代表所有请求和资源文件 --> /staticfile/**=anon <!-- 拦截所有(除去登录相关的和静态资源) --> /**=authc </value> </property> </bean> </beans> * applicationContext-transaction.xml # # <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd "> <!--配置事务 --> <tx:annotation-driven transaction-manager="transactionManager" /> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="c3p0dataSource"></property> </bean> </beans> * applicationContext-mvc-config.xml # # <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd "> <!-- 扫描包 --> <context:component-scan base-package="com.peng"></context:component-scan> <!-- 扫描注解 --> <context:annotation-config></context:annotation-config> <!-- mvc注解 --> <mvc:annotation-driven></mvc:annotation-driven> <!-- 资源解析器:前后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/pages"> </property> <property name="suffix" value=".jsp"></property> </bean> <!-- 文件上传资源解析器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8"></property> <property name="maxUploadSize" value="10485760000"></property> <property name="maxInMemorySize" value="40960"></property> </bean> <!-- 处理静态资源被“/”所拦截的问题 --> <mvc:default-servlet-handler /> </beans> * jdbc\_config.properties # # jdbc.user=root jdbc.password=root jdbc.url=jdbc\:mysql\://localhost\:3306/ht?zeroDateTimeBehavior=convertToNull jdbc.driver=com.mysql.jdbc.Driver * log4j.properties # # log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG * webapp * staticfile【静态资源略】 * ![fP8tyG8.png][] * WEB-INF * pages * basicinfo * left.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../baselist.jsp" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all"/> </head> <body id="left_frame"> <div class="PositionFrame_black" id="PositionFrame"></div> <!-- begin1 --> <div id="sidebar" class="sidebar"> <div class="sidebar_t"> <div class="sidebar_t_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_t_r"></div> </div> <div class="panel"> <div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/document_into.png" /></div> <div class="panel-header"> <div class="panel-title">基础代码管理</div> <div class="panel-content"> <ul> <li> <a href="#" id="aa_1" onclick="linkHighlighted(this)">系统代码</a> </li> <li><a href="${ctx}/basicinfo/factoryAction_list" onclick="linkHighlighted(this)" target="main" id="aa_1">厂家信息</a></li> </ul> </div> </div> </div> <div class="sidebar_t"> <div class="sidebar_b_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_b_r"></div> </div> </div> </body> </html> * main.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../base.jsp" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>模块介绍</title> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/main.css" media="all"/> </head> <body> <form> <div class="textbox"></div> <div class="modelDiv"> <table class="modelTable" cellspacing="1"> <tr> <td colspan="2" class="modelTitle">基础信息管理模块介绍</td> </tr> <tr> <td colspan="2" class="subModelTitle">基础代码管理</td> </tr> <tr> <td class="model_intro_left" width="169">系统代码:</td> <td class="model_intro_right" width="81%">统一管理系统中的基础代码, 相比“基础代码”它结果将形成多级树型结构。</td> </tr> <tr> <td colspan="2" class="subModelTitle">基础信息管理</td> </tr> <tr> <td class="model_intro_left">厂家信息:</td> <td class="model_intro_right">在购销合同中货物和附件中可选择对应的厂家。</td> </tr> <tfoot> <tr> <td colspan="2" class="tableFooter"></td> </tr> </tfoot> </table> </div> </form> </body> </html> * cargo * left.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../baselist.jsp" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all"/> </head> <body id="left_frame"> <div class="PositionFrame_black" id="PositionFrame"></div> <!-- begin1 --> <div id="sidebar" class="sidebar"> <div class="sidebar_t"> <div class="sidebar_t_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_t_r"></div> </div> <div class="panel"> <div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/cubes.png"/></div> <div class="panel-header"> <div class="panel-title">货运管理</div> <div class="panel-content"> <ul> <li><a href="${ctx}/cargo/contractAction_list" onclick="linkHighlighted(this)" target="main" id="aa_1">购销合同</a></li> <li><a href="${ctx}/cargo/outProductAction_toedit" onclick="linkHighlighted(this)" target="main" id="aa_1">出货表</a></li> <li><a href="${ctx}/cargo/export/exportAction_contractList" onclick="linkHighlighted(this)" target="main" id="aa_1">合同查询</a></li> <li><a href="${ctx}/cargo/export/exportAction_list" onclick="linkHighlighted(this)" target="main" id="aa_1">出口报运</a></li> <li><a href="${ctx}/cargo/export/exportAction_ws" onclick="linkHighlighted(this)" target="main" id="aa_1">出口跟踪</a></li> <li><a href="${ctx}/cargo/export/contractHisAction_list" onclick="linkHighlighted(this)" target="main" id="aa_1">历史购销合同查询</a></li> </ul> </div> </div> </div> <div class="sidebar_t"> <div class="sidebar_b_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_b_r"></div> </div> </div> </body> </html> * main.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../base.jsp" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>模块介绍</title> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/main.css" media="all"/> </head> <body> <form> <div class="textbox"></div> <div class="modelDiv"> <table class="modelTable" cellspacing="1"> <tr> <td colspan="2" class="modelTitle">货运模块介绍</td> </tr> <tr> <td class="subModelTitle">购销合同</td> <td class="model_intro_right">客户签单后,公司向厂家下达购销合同,包括货物的具体要求和交期。合同按不同厂家打印购销合同单,附件单独打印,由公司驻当地销售人员分发到各工厂。<br> 归档:标识彻底完成的项目,方便统计。在报运时也不能在选这些合同。<br> </td> </tr> <tr> <td class="subModelTitle">出货表</td> <td class="model_intro_right">根据合同和指定的船期月份,统计当月的出货情况。<br></td> </tr> <tr> <td class="subModelTitle">出口报运单</td> <td class="model_intro_right">根据购销合同制定出口商品报运单。报运时可以将多个购销合同形成一单报运;也可以只走部分货物。<br> 分批走货:合同可以多个一起报运; 而一个合同可以分多次走货; 根据合同和合同货物的走货状态可以查看合同的走货情况。 <!-- 修改走货状态:1)合同新增货物、修改货物 2)报运货物修改、删除货物、增补货物、删除报运 --> </td> </tr> <tr> <td class="subModelTitle">HOME装箱单</td> <td class="model_intro_right">根据出口报运单制定HOME装箱单,先制作HOME装箱单给客户看,客人同意,则直接制定相应装箱单;如有调整,则重新复制修改出口报运单,可能拆成多个报运。<br></td> </tr> <tr> <td class="subModelTitle">装箱单</td> <td class="model_intro_right">根据出口报运单制定装箱单,填写发票号、发票时间,以及客人等相关信息。<br></td> </tr> <tr> <td class="subModelTitle">委托书</td> <td class="model_intro_right">根据装箱制定海运或空运委托书。<br></td> </tr> <tr> <td class="subModelTitle">发票</td> <td class="model_intro_right">根据装箱制定发票。<br></td> </tr> <tr> <td class="subModelTitle" nowrap>财务出口报运单</td> <td class="model_intro_right">根据报运制定财务出口报运单。<br></td> </tr> <tfoot> <tr> <td colspan="2" class="tableFooter"></td> </tr> </tfoot> </table> </div> </form> </body> </html> * home * fmain.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <html> <head> <title>国际物流汇通商贸</title> </head> <frameset rows="125,*" name="topFrameset" border="0"> <frame name="top_frame" scrolling="no" target="middleFrameSet" src="title.action"> <frameset cols="202,*" height="100%" name="middle" frameborder="no" border="0" framespacing="0"> <frame name="leftFrame" class="leftFrame" target="main" scrolling="no" src="home/Left.action" /> <frame name="main" class="rightFrame" src="home/Main.action" /> </frameset> </frameset> <noframes> <body> <p>此网页使用了框架,但您的浏览器不支持框架。</p> </body> </noframes> </html> * left.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../base.jsp" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all"/> <script language="javascript" src="${ctx}/staticfile/js/common.js"></script> <script language="javascript" src="${ctx}/staticfile/js/ajax/setFastMenu.js"></script> <script language="javascript" src="${ctx}/staticfile/js/pngfix_map.js"></script> <script type="text/javascript" src="${ctx}/staticfile/components/jquery-ui/jquery-1.2.6.js"></script> <script type="text/javascript" src="${ctx}/staticfile/skin/default/js/toggle.js"></script> <script language="javascript"> $().ready(function(){ $(fastMenu).hide(); //document.getElementById('aa_3').click(); //默认打开我的留言板页面 }); function showMenu( who ){ if(who=="fastMenu"){ $(fastMenu).show(); $(customerMenu).hide(); }else if(who=="customerMenu"){ $(customerMenu).show(); $(fastMenu).hide(); } } </script> </head> <body id="left_frame"> <div class="PositionFrame_black" id="PositionFrame"></div> <div id="sidebar" class="sidebar"> <div class="sidebar_t"> <div class="sidebar_t_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_t_r"></div> </div> <div class="panel"> <div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/user2.png" /></div> <div class="panel-header"> <div class="panel-title">个人工作台</div> <div class="panel-content"> <ul> <li><a href="${ctx}/staticfile/tomain.action?modelName=home" target="main" id="aa_3" onclick="linkHighlighted(this)">我的留言板</a></li> <li><a href="${ctx}/staticfile/home/workflow/tasklist.action" target="main" id="aa_2" onclick="linkHighlighted(this)">我的代办任务</a></li> <li><a href="${ctx}/staticfile/baseinfo/leavebill/list.action" target="main" id="aa_1" onclick="linkHighlighted(this)">请假单管理</a></li> </ul> </div> </div> </div> <div class="sidebar_t"> <div class="sidebar_b_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_b_r"></div> </div> </div> <div id="sidebar" class="sidebar"> <div class="sidebar_t"> <div class="sidebar_t_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_t_r"></div> </div> <div class="panel"> <div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/user1_find.png" /></div> <div class="panel-header"> <div class="panel-title">我的常用功能</div> <div style="margin-top:5px;"></div> <!-- 以上为永久固定栏目,以下为活动栏目 --> <div style="border-bottom:1px dotted #cee1df;"> 切换:<a href="#" onmousemove="javascript:showMenu('fastMenu');">快捷菜单</a> / <a href="#" onmousemove="javascript:showMenu('customerMenu');">自定义菜单</a> </div> <div id="fastMenu"> <div class="panel-content"></div><a href="#" class="DelFastMenu"><font color="gray">清除常用功能列表</font></a> </div> <div id="customerMenu"> <div class="FastMenu"><img src="${ctx}/staticfile/skin/default/images/notice.gif" style="margin-right:5px;" border="0" /><font color="gray">您还没定义您的菜单</font></div> </div> </div> </div> <div class="sidebar_t"> <div class="sidebar_b_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_b_r"></div> </div> </div> <!-- begin1 --> <div id="sidebar" class="sidebar"> <div class="sidebar_t"> <div class="sidebar_t_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_t_r"></div> </div> <div class="panel"> <div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/businessman2.png" /></div> <div class="panel-header"> <div class="panel-title"> 用户设定 </div> <div class="panel-content"> <ul> <li><a href="${ctx}/sysadmin/userAction_toUpdatePassword" id="aa_2" onclick="linkHighlighted(this)" target="main">个人信息修改</a></li> <li><a href="#" id="aa_2" onclick="linkHighlighted(this)">系统使用反馈</a></li> </ul> </div> </div> </div> <div class="sidebar_t"> <div class="sidebar_b_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_b_r"></div> </div> </div> <!-- end1 --> </body> </html> * main.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../base.jsp" %> <html xmlns="http://www.w3.org/1999/xhtml"> <html> <head> <title></title> <script type="text/javascript" src="${ctx}/staticfile/components/jquery-ui/jquery-1.2.6.js"></script> <style> .curbody{ CURSOR: url(${ctx}/staticfile/images/olmsg/shubiao.ani);background:url(${ctx}/staticfile/images/olmsg/pic738x571.jpg); } .msgcontent{ width:218px;overflow:hidden;word-break:break-all;padding:10px;font-size:14px;color:#339966;font-family:Tahoma;line-height:180%; } .msgcontent p{ text-indent:0px;} .msgcontent ul( margin:0px;} .msgbackcontent{ width:218px;overflow:hidden;word-break:break-all;padding:10px;font-size:14px;color:#339966;font-family:Tahoma;line-height:180%; } .msgbackcontent p{ text-indent:0px;} .msgbackcontent ul( margin:0px;} li{ text-indent:0px;margin:0px;list-style:default; } </style> </head> <script language="javascript"> //-- 控制层移动start of script --> var Obj=''; var index=10000;//z-index; var color=''; var str=''; document.onmouseup=MUp document.onmousemove=MMove function MMove(){ if(Obj!=''){ document.all(Obj).style.left=event.x-pX; document.all(Obj).style.top=event.y-pY; } } function MUp(){ if(Obj!=''){ document.all(Obj).releaseCapture(); Obj=''; } var srcEle = event.srcElement; var children = srcEle.children; if(children.length>0){ children[1].value = "1"; //isChange children[2].value = event.x-pX; children[3].value = event.y-pY; } } function MDown(objtd,id){ Obj=id document.all(Obj).setCapture() pX = event.x-document.all(Obj).style.pixelLeft; pY = event.y-document.all(Obj).style.pixelTop; } //-- 控制层移动end of script --> //获得焦点; function getFocus(obj) { if(obj.style.zIndex!=index) { index = index + 2; var idx = index; obj.style.zIndex=idx; //obj.nextSibling.style.zIndex=idx-1; } } //针对未已阅的、未回复的、工作任务 function msgrevoke( id ){ if(confirm("是否确定要撤销此条信息?")){ //_Submit("/home/olmsgRevokeAction.do?flag=revoke&id="+id,null,"撤销"); } } //需回复的留言 function msgback( id ){ //_Submit("/home/olmsgUpdateAction.do?flag=back&id="+id,null,"回复"); } function msgupdate( id , flag ){ if(flag=="read"){ if(!confirm("是否确定已阅此条信息?")){ return false; } }else if(flag=="accept"){ if(!confirm("是否确定接受此任务?")){ return false; } }else if(flag=="fail"){ if(!confirm("是否确定此任务未完成?")){ return false; } }else if(flag=="success"){ if(!confirm("是否确定此任务已完成?")){ return false; } }else if(flag=="finished"){ if(!confirm("是否确定完成?")){ return false; } } //_Submit("/home/olmsgUpdateAction.do?flag="+flag+"&id="+id,null,"修改"); } function msgdel( id ){ if(confirm("是否确定要删除此条信息?")){ //_Submit("/home/olmsgDeleteAction.do?delId="+id,null,"删除"); } } function msgstate( id , flag ){ if(flag=="read"){ if(!confirm("是否确定已阅此条信息?")){ return false; } }else if(flag=="accept"){ if(!confirm("是否确定接受此任务?")){ return false; } }else if(flag=="fail"){ if(!confirm("是否确定此任务未完成?")){ return false; } }else if(flag=="success"){ if(!confirm("是否确定此任务已完成?")){ return false; } }else if(flag=="finished"){ if(!confirm("是否确定完成?")){ return false; } } //_Submit("/home/olmsgStateAction.do?flag="+flag+"&delId="+id,null,"已阅"); } function changRowColor(obj){ //obj.removeAttribute("className"); //alert(obj.className); //obj.setAttribute("bgcolor","#FFECB0"); //obj.sytle.backgroundColor = "#FFECB0"; } function removeOverRowColor(obj){ //alert(obj.getAttribute("style")); } function killErrors() { return true; } window.onerror = killErrors; </script> <body class="curbody"> <form name="form2"> <!-- 工具栏部分 ToolBar --> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="new"><a href="#">新建</a></li> <li id="save"><a href="#" title="保存留言窗口的位置信息">位置</a></li> <li id="stat"><a href="#">历史</a></li> </ul> </div> </div> </div> </div> <logic:notEmpty name="olmsgList"> <div id='ff8080813d00613e013d0067909e0009' style='position:absolute;left:122px;top:97px;z-index:1001; height:164px;background:none;' onmousedown='getFocus(this)'> <table border=0 cellspacing="0" cellpadding="0" width="220"> <tr> <td style='cursor:move;' onmousedown="MDown(this,'ff8080813d00613e013d0067909e0009')" background="${ctx}/staticfile/images/olmsg/C0FFE51.gif" height="45"> <input type="hidden" name="id" class="input" value="ff8080813d00613e013d0067909e0009" /> <input type="hidden" name="isChange" class="input" value="0" /> <input type="hidden" name="posX" class="input" value="122" /> <input type="hidden" name="posY" class="input" value="97" /> </td> </tr> <tr> <td style='cursor:move;white-space:nowrap;' width='100%' onmousedown="MDown('ff8080813d00613e013d0067909e0009')" background="${ctx}/staticfile/images/olmsg/C0FFE52.gif" > <div style="float:left;width:130px;padding-left:7px;font-family:Tahoma;color:gray;font-style : oblique;"> 2013-02-22 13:37 </div> <div style="float:right;width:80px;text-align:right;padding-right:7px;"> <a style='cursor:pointer;' title="编辑" onclick="msgupdate('ff8080813d00613e013d0067909e0009','edit')"><img src="${ctx}/staticfile/images/olmsg/doc_edit.gif"/></a> <a style='cursor:pointer;' title="删除" onclick="msgdel('ff8080813d00613e013d0067909e0009')"><img src="${ctx}/staticfile/images/olmsg/doc_del.gif"/></a> </div> </td> </tr> <tr> <td background="${ctx}/staticfile/images/olmsg/C0FFE52.gif"> <div class="msgcontent"> 欢迎使用杰管理平台 </div> </td> </tr> <tr> <td id="tagBPic" background="${ctx}/staticfile/images/olmsg/C0FFE53.gif" height="63"> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="50" align="center"> <img border="0" src="${ctx}/staticfile/images/olmsg/2.gif"> </td> <td style="text-align:right;padding-right:8px;" nowrap> [备忘] <!-- [回复] --> <!-- [回执] --> <!-- [撤销原因] --> <!-- state==99[完成] --> </td> </tr> </table> </td> </tr> </table> </div> <div id='ff8080813d00613e013d00681494000a' style='position:absolute;left:442px;top:91px;z-index:1002; height:164px;background:none;' onmousedown='getFocus(this)'> <table border=0 cellspacing="0" cellpadding="0" width="220"> <tr> <td style='cursor:move;' onmousedown="MDown(this,'ff8080813d00613e013d00681494000a')" background="${ctx}/staticfile/images/olmsg/FFE7E81.gif" height="45"> <input type="hidden" name="id" class="input" value="ff8080813d00613e013d00681494000a" /> <input type="hidden" name="isChange" class="input" value="0" /> <input type="hidden" name="posX" class="input" value="442" /> <input type="hidden" name="posY" class="input" value="91" /> </td> </tr> <tr> <td style='cursor:move;white-space:nowrap;' width='100%' onmousedown="MDown('ff8080813d00613e013d00681494000a')" background="${ctx}/staticfile/images/olmsg/FFE7E82.gif" > <div style="float:left;width:130px;padding-left:7px;font-family:Tahoma;color:gray;font-style : oblique;"> 2013-02-22 13:37 </div> <div style="float:right;width:80px;text-align:right;padding-right:7px;"> <a style='cursor:pointer;' title="编辑" onclick="msgupdate('ff8080813d00613e013d00681494000a','edit')"><img src="${ctx}/staticfile/images/olmsg/doc_edit.gif"/></a> <a style='cursor:pointer;' title="删除" onclick="msgdel('ff8080813d00613e013d00681494000a')"><img src="${ctx}/staticfile/images/olmsg/doc_del.gif"/></a> </div> </td> </tr> <tr> <td background="${ctx}/staticfile/images/olmsg/FFE7E82.gif"> <div class="msgcontent"> 本系统实现货运企业日常管理<br /> 包括合同、报运、装箱、委托、发票等业务 </div> </td> </tr> <tr> <td id="tagBPic" background="${ctx}/staticfile/images/olmsg/FFE7E83.gif" height="63"> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="50" align="center"> <img border="0" src="${ctx}/staticfile/images/olmsg/0.gif"> </td> <td style="text-align:right;padding-right:8px;" nowrap> [备忘] <!-- [回复] --> <!-- [回执] --> <!-- [撤销原因] --> <!-- state==99[完成] --> </td> </tr> </table> </td> </tr> </table> </div> </logic:notEmpty> </form> </body> </html> * title.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../base.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <jsp:useBean id="now" class="java.util.Date" /> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!-- 调用样式表 --> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/default.css" media="all" /> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/title.css" media="all" /> <script type="text/javascript" src="${ctx}/staticfile/components/jquery-ui/jquery-1.2.6.js"></script> <script language="javascript" src="${ctx}/js/pngfix_map.js"></script> <script language="javascript" src="${ctx}/js/common.js"></script> <!-- 调用外部 JavaScript 脚本语言 --> <script language="javascript"> function CustomTitle() { var Me = document.getElementById('memos'); var Loin = document.getElementById('logins'); var Lout = document.getElementById('logout'); Me.onmouseover = function() { document.getElementById('memo').style.background = 'url(${ctx}/staticfile/skin/default/images/title/memo2.gif) no-repeat' }; Me.onmouseout = function() { document.getElementById('memo').style.background = 'url(${ctx}/staticfile/skin/default/images/title/memo.gif) no-repeat' }; Loin.onmouseover = function() { document.getElementById('small_login').style.background = 'url(${ctx}/staticfile/skin/default/images/title/small_login2.gif) no-repeat' }; Loin.onmouseout = function() { document.getElementById('small_login').style.background = 'url(${ctx}/staticfile/skin/default/images/title/small_login.gif) no-repeat' }; Lout.onmouseover = function() { document.getElementById('small_login_out').style.background = 'url(${ctx}/staticfile/skin/default/images/title/login_out2.gif) no-repeat left -55px;' }; Lout.onmouseout = function() { document.getElementById('small_login_out').style.background = 'url(${ctx}/staticfile/skin/default/images/title/login_out.gif) no-repeat' }; } function linkHighlightMenu(obj) { var links = document.getElementsByTagName('span'); for (var i = 0; i < links.length; i++) { if (links[i].id.indexOf('topmenu') != -1) { links[i].style.background = 'url("${ctx}/staticfile/skin/default/images/title/li_dot.gif1") no-repeat right 8px'; links[i].style.color = ''; links[i].style.fontWeight = ''; links[i].style.borderTop = ''; links[i].style.borderLeft = ''; links[i].style.borderRight = ''; links[i].style.padding = ''; } } obj.style.background = 'url("${ctx}/staticfile/skin/default/images/title/button_bg.jpg") no-repeat'; obj.style.color = "#fff"; obj.style.fontWeight = 'bold'; obj.style.padding = '6px 11x 5px 13px;'; obj.blur(); //去掉图片的焦点框,使界面看起来漂亮 updated by tony } //sendRequest('000001'); var y = -5; //个人信息栏初始Y坐标 var dy = -40; //显示后Y坐标 function doLoginDiv() { ShowLoginDiv(); } function HideLoginDiv() { dy = dy - 5; MoveHideLoginDiv(); } function MoveHideLoginDiv() { if (dy > -40) { setTimeout("HideLoginDiv()", 10); } else { y = -40; dy = -40; } document.getElementById("userInfo").style.top = dy; } function ShowLoginDiv() { y = y + 5; MoveShowLoginDiv(); } function MoveShowLoginDiv() { if (y < -5) { setTimeout("ShowLoginDiv()", 10); } else { dy = -5; y = -1 } document.getElementById("userInfo").style.top = y; } function ShowFrameDiv(queryString) { return false; //暂时屏蔽 top.middle.switches.loading.style.display = 'block'; // top.middle.switches.note_iframe.location.href="../home/empmemo/empMemoExpressCreate.jsp"; setTimeout(ShowFrameMain(queryString), 10); } function ShowFrameMain(passValue) { var url = "../home/doConsoleListAction.do"; //../home/empMemoCreateAction.do var topFrame = top.middle.switches; document.getElementById('PositionFrame').style.display = "block"; top.middle.contents.left_frame.style.border = "none"; top.middle.contents.left_frame.style.overflow = "hidden"; topFrame.PositionFrame_main.style.display = "block"; topFrame.PositionFrame.style.display = "block"; topFrame.PositionFrame_notebook.style.display = 'block'; topFrame.PositionFrame_notebook2.style.display = 'none'; topFrame.PositionFrame_my_note.style.display = 'block'; //topFrame.note_iframe.location.href=url; form1.action = url; form1.method = "post"; form1.target = "note_iframe"; // alert(passValue); if (passValue) { form1.innerHTML = '<input type="hidden" name="passTitle" value="' + passValue[0] + '"/>'; form1.innerHTML = form1.innerHTML + '<input type="hidden" name="passContent" value="' +passValue[1]+ '"/>'; } form1.submit(); top.middle.contents.PositionFrame.style.display = "block"; topFrame.loading.style.display = 'none'; topFrame.PositionFrame_main.style.visibility = 'visible'; topFrame.visibility.style.display = 'block'; } function offset(place) { var mask = $('#mask'); var targetObj = $('#menuContent'); var maxOffset = targetObj.width() - mask.width(); var currLeft = targetObj.css('left'); // alert(maxOffset + " " + currLeft); var currLeft = Number(currLeft.substring(0, currLeft.length - 2)); if (place == "right" && (0 - currLeft) <= maxOffset) { targetObj.css('left', currLeft - 5); } else if (place == "left" && currLeft < 0) { targetObj.css('left', currLeft + 5); } } function periodOffset(thisObj, place) { var intervalId = window.setInterval(function() { offset(place) }, 1); $(thisObj).mouseout(function() { window.clearInterval(intervalId) }); } function checkDirectionKey() { var mask = $('#mask'); var bodyWidth = $('body').width(); //alert(bodyWidth - 450); mask.width(bodyWidth - 250); //450 //alert(mask.width()); var targetObj = $('#menuContent'); var maxOffset = targetObj.width() - mask.width(); var currLeft = targetObj.css('left'); // alert(maxOffset + " " + currLeft); var currLeft = Number(currLeft.substring(0, currLeft.length - 2)); // alert((0-currLeft) <= maxOffset); if (!(0 - currLeft) <= maxOffset || currLeft < 0) { $("#rightKey").show("slow"); $("#leftKey").show("slow"); if (!isShow) { $("#prompt_div").show("slow", function() { window.setTimeout(function() { $("#prompt_div").hide("slow") }, 10000); isShow = true; }); } } else { $("#rightKey").hide(); $("#leftKey").hide(); $("#prompt_div").hide(); } } var isShow = false; $(function() { window.onresize = checkDirectionKey; $("#rightKey").hide(); $("#leftKey").hide(); $("#prompt_div").hide(); checkDirectionKey(); }); function logout() { return formSubmit("${ctx}/tologinout.action", "_top"); } function toModule(moduleName) { top.leftFrame.location.href = moduleName + '/Left.action'; top.main.location.href = moduleName + '/Main.action'; linkHighlightMenu(this); } </script> </head> <body onSelectStart="return true"> <!-- 文档主题部分开始 --> <div class="PositionFrame_black" id="PositionFrame"></div> <div id="userInfo" style="z-index: 999;" onclick="HideLoginDiv()" title="点击关闭"> <img src="${ctx}/staticfile/skin/default/images/title/avataronline.gif" border="0" style="margin-top: -1px;" /> 您好:<strong>${_CURRENT_USER.userInfo.name}</strong> | 您所属单位:<strong> <c:if test="${!empty _CURRENT_USER.dept}"> ${_CURRENT_USER.dept.deptName} </c:if> </strong> <img src="${ctx}/staticfile/skin/default/images/title/close.gif" border="0" /> </div> <a id="memos" style="cursor: pointer;" onclick="toModule('home');" target="_top" title="点击切换到系统首页"><div id="memo" class="memo" title="点击切换到系统首页"></div></a> <a id="logins" style="cursor: pointer;" onclick="doLoginDiv();" title="点击显示您的登录信息"><div id="small_login" class="small_login" title="点击显示您的登录信息"></div></a> <a id="logout" style="cursor: pointer;" onclick="logout();" target="_top" title="点击退出系统"><div id="small_login_out" class="small_login_out" title="点击退出系统"></div></a> <div class="headerBg"> <div class="top_logo"> <div class="navMenu" style="float: left; text-align: left;"> <div class="titleDate" style="float: left;"> <fmt:formatDate value="${now}" pattern="yyyy年M月d日 E" /> </div> <div style="height: 29px;"> <span id="leftKey" onmouseover="periodOffset(this, 'left')"><img src="${ctx}/staticfile/skin/default/images/title/left_arrow.png" /></span> <div class="mavMeau_top"></div> <div id="mask"> <div id="menuContent"> <span id="topmenu" onclick="toModule('home');">系统首页</span><span id="tm_separator"></span> <shiro:hasPermission name="货运管理"> <span id="topmenu" onclick="toModule('cargo');">货运管理</span> </shiro:hasPermission> <span id="tm_separator"></span> <shiro:hasPermission name="基础信息"> <span id="topmenu" onclick="toModule('baseinfo');">基础信息</span> </shiro:hasPermission> <span id="tm_separator"> </span> <shiro:hasPermission name="系统管理"> <span id="topmenu" onclick="toModule('sysadmin');">系统管理</span> </shiro:hasPermission> </div> <span id="rightKey" onmouseover="periodOffset(this, 'right')"><img src="${ctx}/staticfile/skin/default/images/title/right_arrow.png" /></span> </div> </div> </div> </div> <div id="prompt_div"> <img src="${ctx}/staticfile/skin/default/images/title/prompt.png" /><span style="position: absolute; top: 2px; left: 35px; z-index: 99999; width: 100%; color: #FFFFFF; text-align: left;">鼠标指向箭头位置<br />可显示更多菜单项 </span> </div> <form name="form1" style="display: none;"></form> <% //备忘录等使用 %> </body> </html> * stat * left.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../base.jsp" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all"/> <script language="javascript" src="${ctx}/staticfile/js/common.js"></script> <script language="javascript" src="${ctx}/staticfile/js/ajax/setFastMenu.js"></script> <script language="javascript" src="${ctx}/staticfile/js/pngfix_map.js"></script> <script type="text/javascript" src="${ctx}/staticfile/components/jquery-ui/jquery-1.2.6.js"></script> <script type="text/javascript" src="${ctx}/staticfile/skin/default/js/toggle.js"></script> </head> <body id="left_frame"> <!-- begin1 --> <div id="sidebar" class="sidebar"> <div class="sidebar_t"> <div class="sidebar_t_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_t_r"></div> </div> <div class="panel"> <div class="panel_icon"><img src="${ctx}/staticfile/skin/default/images/icon/document_chart.png" /></div> <div class="panel-header"> <div class="panel-title"> 统计查询 </div> <div class="panel-content"> <ul> <li><a href="${ctx}/stat/statChartAction_factorySale" onclick="linkHighlighted(this)" target="main" id="aa_1">生产厂家销售情况</a></li> <li><a href="${ctx}/stat/statChartAction_productSale" onclick="linkHighlighted(this)" target="main" id="aa_1">产品销售排行</a></li> <li><a href="${ctx}/stat/statChartAction_onlineInfo" onclick="linkHighlighted(this)" target="main" id="aa_1">系统访问压力图</a></li> <li><a href="${ctx}/stat/statChartAction_factorySaleEcharts" onclick="linkHighlighted(this)" target="main" id="aa_1">eCharts</a></li> <li><a href="${ctx}/stat/statChartAction_onlineinfoHighCharts" onclick="linkHighlighted(this)" target="main" id="aa_1">highCharts</a></li> </ul> </div> </div> </div> <div class="sidebar_t"> <div class="sidebar_b_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_b_r"></div> </div> </div> <!-- end1 --> </body> </html> * main.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../base.jsp" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>模块介绍</title> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/main.css" media="all"/> </head> <body> <form> <div class="textbox"></div> <div class="modelDiv"> <table class="modelTable" cellspacing="1"> <tr> <td colspan="2" class="modelTitle">统计分析介绍</td> </tr> <tr> <td class="subModelTitle">生产厂家销售情况</td> <td class="model_intro_right">和公司合作的生产厂家销售情况饼形图<br> </td> </tr> <tr> <td class="subModelTitle">产品销售排行</td> <td class="model_intro_right">统计公司最畅销的产品是哪些?<br>统计公司最滞销的产品是哪些?</td> </tr> <tr> <td class="subModelTitle">系统访问</td> <td class="model_intro_right">统计系统一天用户访问系统的情况,何时访问频繁,何时访问较少,方便开发人员对系统进行优化。</td> </tr> <tfoot> <tr> <td colspan="2" class="tableFooter"></td> </tr> </tfoot> </table> </div> </form> </body> </html> * sysadmin * dept * JDeptCreate.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>新增部门</title> <script type="text/javascript"> //保存错误 if ("${save_error}" != "") { alert("${save_error}"); } </script> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a onclick="window.history.back()">返回</a></li> <li id="new"><a onclick="formSubmit('save','_self');this.blur()">新增</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 添加部门 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <tr> <td>部门名称:</td> <td><input type="text" name="deptName" /></td> </tr> <tr> <td>部门ID:</td> <td><input type="text" name="deptId" /></td> </tr> <tr> <td>上级部门:</td> <td><select name="parentDept.deptId"> <option>--无上级--</option> <c:forEach items="${deptList}" var="dept"> <option value="${dept.deptId}">${dept.deptName}</option> </c:forEach> </select></td> </tr> <tr> <td>部门状态</td> <td>关闭<input type="radio" name="state" value="0" />开启<input type="radio" name="state" value="1" /></td> </tr> </table> </div> </div> </form> </body> </html> * JDeptList.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>部门列表</title> </head> <script type="text/javascript"> //没有选部门就更新 if ("${error_up}" != "") { alert("${error_up}"); } </script> <c:set property="error_up" value="" var="error_up"> </c:set> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a href="#" onclick="formSubmit('toview','_self');this.blur();">查看</a></li> <li id="new"><a href="#" onclick="formSubmit('tocreate','_self');this.blur();">新增</a></li> <li id="update"><a href="#" onclick="formSubmit('toupdate','_self');this.blur();">修改</a></li> <li id="delete"><a href="#" onclick="formSubmit('delete','_self');this.blur();">删除</a></li> <li id="new"><a href="#" onclick="formSubmit('start','_self');this.blur();">启用</a></li> <li id="new"><a href="#" onclick="formSubmit('stop','_self');this.blur();">停用</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 部门列表 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <thead> <tr> <td class="tableHeader"><input type="checkbox" name="selid" onclick="checkAll('deptId',this)"></td> <td class="tableHeader">序号</td> <td class="tableHeader">编号</td> <td class="tableHeader">上级</td> <td class="tableHeader">名称</td> <td class="tableHeader">状态</td> </tr> </thead> <tbody class="tableBody"> <c:forEach items="${deptList}" var="d" varStatus="status"> <tr class="odd" onmouseover="this.className='highlight'" onmouseout="this.className='odd'"> <td><input type="checkbox" name="deptId" value="${d.deptId}" /></td> <td>${status.index+1}</td> <td>${d.deptId}</td> <td>${d.parentDept.deptName}</td> <td>${d.deptName}</td> <td><c:if test="${d.state==1}"> <a href="stop?deptId=${d.deptId}"><font color="green">启用</font></a> </c:if> <c:if test="${d.state==0}"> <a href="start?deptId=${d.deptId}"><font color="red">停用</font></a> </c:if></td> </tr> </c:forEach> </tbody> </table> </div> </div> </form> </body> </html> * JDeptUpdate.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>更新部门</title> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a onclick="window.history.back()">返回</a></li> <li id="new"><a onclick="formSubmit('update','_self');this.blur()">修改</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 更新部门 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <tr> <td>部门编号</td> <td><input type="text" name="deptId" value="${dept.deptId}" readonly="readonly" /></td> </tr> <tr> <td>部门名称:</td> <td><input type="text" name="deptName" value="${dept.deptName}" /></td> </tr> <tr> <td>上级部门:</td> <td><select name="parentDept.deptId"> <option>--无上级--</option> <c:forEach items="${deptList}" var="d"> <option value="${d.deptId}" ${dept.parentDept.deptId==d.deptId ? 'selected="selected"':""}>${d.deptName}</option> </c:forEach> </select></td> </tr> <tr> <td>部门状态</td> <td>关闭<input type="radio" name="state" value="0" ${dept.state==0 ? 'checked="checked"':""} />开启<input type="radio" name="state" value="1" ${dept.state==1 ? 'checked="checked"':""} /></td> </tr> </table> </div> </div> </form> </body> </html> * JDeptView.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>查看部门</title> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a onclick="window.history.back()">返回</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 部门详情 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <tr> <td>部门编号</td> <td><input type="text" name="deptId" value="${dept.deptId}" readonly="readonly" /></td> </tr> <tr> <td>部门名称:</td> <td><input type="text" name="deptName" value="${dept.deptName}" readonly="readonly" /></td> </tr> <tr> <td>上级部门:</td> <td><select name="parentDept.deptId" readonly="readonly"> <option>--无上级--</option> <c:forEach items="${deptList}" var="d"> <option value="${d.deptId}" ${dept.parentDept.deptId==d.deptId ? 'selected="selected"':""}>${d.deptName}</option> </c:forEach> </select></td> </tr> <tr> <td>部门状态</td> <td>关闭<input type="radio" name="state" value="0" ${dept.state==0 ? 'checked="checked"':""} readonly="readonly" />开启<input type="radio" name="state" value="1" ${dept.state==1 ? 'checked="checked"':""} readonly="readonly" /></td> </tr> </table> </div> </div> </form> </body> </html> * login * login.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../base.jsp" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>国际物流汇通商贸</title> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/login.css" media="all" /> <script src="${ctx}/staticfile/components/pngfix/DD_belatedPNG.js"></script> <script> DD_belatedPNG.fix('*'); </script> </head> <body> <form id="login_main" method="post"> <div id="png"> <div class="box"> <div class="inputstyle"> <div class="inputlable">用户名: <input type="text" value="tony" name="userName" id="userName" onFocus="this.select();" title="请您输入用户名"/> <div id="ts" style="z-index:1;"> </div> </div> <div class="inputlable">密 码: <input type="password" value="123456" name="password" id="password" onfocus="$('#ts').css('display','none');this.select();" onKeyDown="javascript:if(event.keyCode==13){ submitFind(); }" title="请您输入密码"/> </div> </div> <div class="btnstyle"> <input class="loginImgOut" value="" type="button" onclick="formSubmit('${ctx}/login.action','_self');" onmouseover="this.className='loginImgOver'" onmouseout="this.className='loginImgOut'" /> <input class="resetImgOut" value="" type="button" onmouseover="this.className='resetImgOver'" onmouseout="this.className='resetImgOut'" /> </div> <div class="msgtip"> <c:if test="${!empty errorInfo}"> ${errorInfo} </c:if> </div> </div> </div> </form> <script type="text/JavaScript"> document.getElementById('login_main').userName.focus(); </script> </body> </html> * logout.jsp # # <%@ page contentType="text/html; charset=utf-8"%> <%@ include file="../../base.jsp" %> <html> <head> </head> <script type="text/javascript"> window.top.location.href = "login"; //javascript页面跳转,top防止帧框架嵌套难看 </script> <body> </body> </html> * module * JModuleCreate.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>新增模块</title> <script type="text/javascript"> //保存错误 if ("${save_error}" != "") { alert("${save_error}"); } </script> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a onclick="window.history.back()">返回</a></li> <li id="new"><a onclick="formSubmit('save','_self');this.blur()">新增</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 添加模块 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <tr> <td>模块名称:</td> <td><input type="text" name="name" /></td> </tr> <tr> <td>模块描述:</td> <td><input type="text" name="remark" /></td> </tr> <tr> <td>上级模块:</td> <td><select name="parentModule.moduleId"> <option>--无上级--</option> <c:forEach items="${moduleList}" var="module"> <option value="${module.moduleId}">${module.name}</option> </c:forEach> </select></td> </tr> <tr> <td>模块状态</td> <td>关闭<input type="radio" name="state" value="0" checked="checked"/>开启<input type="radio" name="state" value="1" /></td> </tr> </table> </div> </div> </form> </body> </html> * JModuleList.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>模块列表</title> </head> <script type="text/javascript"> //没有选模块就更新 if ("${error_up}" != "") { alert("${error_up}"); } </script> <c:set property="error_up" value="" var="error_up"> </c:set> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a href="#" onclick="formSubmit('toview','_self');this.blur();">查看</a></li> <li id="new"><a href="#" onclick="formSubmit('tocreate','_self');this.blur();">新增</a></li> <li id="update"><a href="#" onclick="formSubmit('toupdate','_self');this.blur();">修改</a></li> <li id="delete"><a href="#" onclick="formSubmit('delete','_self');this.blur();">删除</a></li> <li id="new"><a href="#" onclick="formSubmit('start','_self');this.blur();">启用</a></li> <li id="new"><a href="#" onclick="formSubmit('stop','_self');this.blur();">停用</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 模块列表 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <thead> <tr> <td class="tableHeader"><input type="checkbox" name="selid" onclick="checkAll('moduleId',this)"></td> <td class="tableHeader">序号</td> <td class="tableHeader">编号</td> <td class="tableHeader">上级</td> <td class="tableHeader">名称</td> <td class="tableHeader">描述</td> <td class="tableHeader">状态</td> </tr> </thead> <tbody class="tableBody"> <c:forEach items="${moduleList}" var="m" varStatus="status"> <tr class="odd" onmouseover="this.className='highlight'" onmouseout="this.className='odd'"> <td><input type="checkbox" name="moduleId" value="${m.moduleId}" /></td> <td>${status.index+1}</td> <td>${m.moduleId}</td> <td>${m.parentModule.name}</td> <td>${m.name}</td> <td>${m.remark}</td> <td><c:if test="${m.state==1}"> <a href="stop?moduleId=${m.moduleId}"><font color="green">启用</font></a> </c:if> <c:if test="${m.state==0}"> <a href="start?moduleId=${m.moduleId}"><font color="red">停用</font></a> </c:if></td> </tr> </c:forEach> </tbody> </table> </div> </div> </form> </body> </html> * JModuleUpdate.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>更新模块</title> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a onclick="window.history.back()">返回</a></li> <li id="new"><a onclick="formSubmit('update','_self');this.blur()">修改</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 更新模块 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <tr> <td>模块编号</td> <td><input type="text" name="moduleId" value="${module.moduleId}" readonly="readonly" /></td> </tr> <tr> <td>模块名称:</td> <td><input type="text" name="name" value="${module.name}" /></td> </tr> <tr> <td>模块名称:</td> <td><input type="text" name="remark" value="${module.remark}" /></td> </tr> <tr> <td>上级模块:</td> <td><select name="parentModule.moduleId"> <option>--无上级--</option> <c:forEach items="${moduleList}" var="m"> <option value="${m.moduleId}" ${module.parentModule.moduleId==m.moduleId ? 'selected="selected"':""} ${module.moduleId==m.moduleId ? 'hidden="hidden"':""}>${m.name}</option> </c:forEach> </select></td> </tr> <tr> <td>部门状态</td> <td>关闭<input type="radio" name="state" value="0" ${module.state==0 ? 'checked="checked"':""} />开启<input type="radio" name="state" value="1" ${module.state==1 ? 'checked="checked"':""} /></td> </tr> </table> </div> </div> </form> </body> </html> * JModuleView.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>查看模块</title> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a onclick="window.history.back()">返回</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 模块详情 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <tr> <td>模块编号</td> <td><input type="text" name="moduleId" value="${module.moduleId}" readonly="readonly" /></td> </tr> <tr> <td>模块名称:</td> <td><input type="text" name="name" value="${module.name}" readonly="readonly" /></td> </tr> <tr> <td>上级模块:</td> <td><select name="parentModule.moduleId" readonly="readonly"> <option>--无上级--</option> <c:forEach items="${moduleList}" var="m"> <option value="${m.moduleId}" ${module.parentModule.moduleId==m.moduleId ? 'selected="selected"':""}>${m.name}</option> </c:forEach> </select></td> </tr> <tr> <td>部门状态</td> <td>关闭<input type="radio" name="state" value="0" ${module.state==0 ? 'checked="checked"':""} readonly="readonly" />开启<input type="radio" name="state" value="1" ${module.state==1 ? 'checked="checked"':""} readonly="readonly" /></td> </tr> </table> </div> </div> </form> </body> </html> # # * role * JRoleCreate.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>新增角色</title> <script type="text/javascript"> //保存错误 if ("${save_error}" != "") { alert("${save_error}"); } </script> </script> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a onclick="window.history.back()">返回</a></li> <li id="new"><a onclick="formSubmit('save','_self');this.blur()">新增</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 添加角色 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <tr> <td>角色ID:</td> <td><input type="text" name="roleId" /></td> <td>角色名称:</td> <td><input type="text" name="name" /></td> <td>角色描述:</td> <td><input type="text" name="remarks" /></td> <td>创建者:</td> <td><input type="text" name="createBy" /></td> </table> </div> </div> </form> </body> </html> * JRoleList.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>角色列表</title> <script type="text/javascript"> //没有角色 if ("${error_up}" != "") { alert("${error_up}"); } //保存失败 if ("${error_save}" != "") { alert("${error_save}"); } //保存成功 if ("${success_save}" != "") { alert("${success_save}"); } </script> </head> <c:set property="error_up" value="" var="error_up"> </c:set> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a href="#" onclick="formSubmit('toview','_self');this.blur();">查看</a></li> <li id="new"><a href="#" onclick="formSubmit('tocreate','_self');this.blur();">新增</a></li> <li id="update"><a href="#" onclick="formSubmit('toupdate','_self');this.blur();">修改</a></li> <li id="delete"><a href="#" onclick="formSubmit('delete','_self');this.blur();">删除</a></li> <li id="delete"><a href="#" onclick="formSubmit('tomodule','_self');this.blur();">模块</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 角色列表 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <thead> <tr> <td class="tableHeader"><input type="checkbox" name="selid" onclick="checkAll('roleId',this)"></td> <td class="tableHeader">序号</td> <td class="tableHeader">名称</td> <td class="tableHeader">介绍</td> </tr> </thead> <tbody class="tableBody"> <c:forEach items="${roles}" var="role" varStatus="status"> <tr class="odd" onmouseover="this.className='highlight'" onmouseout="this.className='odd'"> <td><input type="checkbox" name="roleId" value="${role.roleId}" /></td> <td>${status.index+1}</td> <td>${role.name}</td> <td>${role.remarks}</td> </tr> </c:forEach> </tbody> </table> </div> </div> </form> </body> </html> * JRoleModule.jsp # # <%@ page language="java" pageEncoding="UTF-8" isELIgnored="false"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>角色模块分配</title> <link rel="stylesheet" href="${ctx}/staticfile/components/zTree/css/zTreeStyle/zTreeStyle.css" type="text/css"> <script type="text/javascript" src="${ctx}/staticfile/components/zTree/js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="${ctx}/staticfile/components/zTree/js/jquery.ztree.core-3.5.min.js"></script> <script type="text/javascript" src="${ctx}/staticfile/components/zTree/js/jquery.ztree.excheck-3.5.min.js"></script> <SCRIPT type="text/javascript"> var setting = { check : { enable : true }, data : { simpleData : { enable : true } } }; //这里相当于在拿后来传来的数据,后台在传数据的时候,属性名要对应上 var zNodes = ${modulesJSON} $(document).ready(function() { $.fn.zTree.init($("#htZtree"), setting, zNodes); var zTreeObj = $.fn.zTree.getZTreeObj("htZtree"); zTreeObj.expandAll(true); //展开所有树节点 }); //获取到所以用户选中的节点id值 //获取所有选择的节点,提交时调用下面函数 function submitCheckedNodes(treeNode) { var nodes = new Array(); var zTreeObj = $.fn.zTree.getZTreeObj("htZtree"); nodes = zTreeObj.getCheckedNodes(true); //取得选中的结点 var str = ""; for (i = 0; i < nodes.length; i++) { if (str != "") { str += ","; } str += nodes[i].id; } $('#moduleIds').val(str); //将拼接完成的字符串放入隐藏域,这样就可以通过post提交 } </SCRIPT> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="save"><a href="#" onclick="submitCheckedNodes();formSubmit('saveRoleModule','_self');this.blur();">保存</a></li> <li id="back"><a href="#" onclick="window.history.go(-1);this.blur();">返回</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="${ctx}/staticfile/skin/default/images/icon/currency_yen.png" /> 角色模块分配 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <!--隐藏域用来传递数据 --> <input type="hidden" id="roleId" name="roleId" value="${roleId}" /> <input type="hidden" id="moduleIds" name="moduleIds" /> <ul id="htZtree" class="ztree"></ul> </table> </div> </div> </form> </body> </html> * JRoleUpdate.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>修改角色</title> <script type="text/javascript"> //保存错误 if ("${error_up}" != "") { alert("${error_up}"); } </script> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a onclick="window.history.back()">返回</a></li> <li id="new"><a onclick="formSubmit('update','_self');this.blur()">修改</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 修改角色 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <tr> <td>角色ID:</td> <td><input type="text" name="roleId" value="${role.roleId}" readonly="readonly" /></td> </tr> <tr> <td>角色名称:</td> <td><input type="text" name="name" value="${role.name}" /></td> </tr> <tr> <td>角色描述:</td> <td><input type="text" name="remarks" value="${role.remarks}" /></td> </tr> <tr> <td><font color="#ff0000">修改人:</font></td> <td><input type="text" name="updateBy" value="${role.updateBy}" /></td> </tr> </table> </div> </div> </form> </body> </html> * JRoleView.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>查看角色</title> <script type="text/javascript"> </script> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a onclick="window.history.back()">返回</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 角色详情 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <tr> <td>角色ID:</td> <td><input type="text" name="roleId" value="${role.roleId}" readonly="readonly" /></td> </tr> <tr> <td>角色名称:</td> <td><input type="text" name="name" value="${role.name}" readonly="readonly" /></td> </tr> <tr> <td>角色描述:</td> <td><input type="text" name="remarks" value="${role.remarks}" readonly="readonly" /></td> </tr> <tr> <td>更新者:</td> <td><input type="text" name="updateBy" value="${role.updateBy}" readonly="readonly" /></td> </tr> </table> </div> </div> </form> </body> </html> * user * JUserCreate.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>新增用户</title> <script type="text/javascript"> //保存错误 if ("${save_error}" != "") { alert("${save_error}"); } </script> </script> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a onclick="window.history.back()">返回</a></li> <li id="new"><a onclick="formSubmit('save','_self');this.blur()">新增</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 添加用户 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <tr> <td>用户ID:</td> <td><input type="text" name="userId" /></td> <td>所属部门:</td> <td><select name="dept.deptId"> <option value="-1">--无--</option> <c:forEach items="${depts}" var="dept"> <option value="${dept.deptId}">${dept.deptName}</option> </c:forEach> </select></td> <td>用户账户:</td> <td><input type="text" name="username" /></td> <td>用户密码:</td> <td><input type="text" name="password" /></td> </tr> <tr> <td>用户状态</td> <td>关闭<input type="radio" name="state" value="0" />开启<input type="radio" name="state" value="1" checked="checked" /></td> <td>创建者:</td> <td><input type="text" name="createBy" /></td> <td>创建时间:</td> <td><input type="date" name="createTime" /></td> </tr> <tr> <td>真实姓名:</td> <td><input type="text" name="userInfo.name" /></td> <td>身份证号:</td> <td><input type="text" name="userInfo.cardNo" /></td> <td>上级领导:</td> <td><select name="userInfo.managerUserInfo.userInfoId"> <option value="-1">--无--</option> <c:forEach items="${userinfos}" var="userinfo"> <option value="${userinfo.userInfoId}">${userinfo.name}</option> </c:forEach> </select></td> </tr> <tr> <td>薪水:</td> <td><input type="text" name="userInfo.salary" /></td> <td>出生日期:</td> <td><input type="date" name="userInfo.birthday" /></td> <td>性别:</td> <td>男<input type="radio" name="userInfo.gender" value="男" checked="checked" />女<input type="radio" name="userInfo.gender" value="女" /></td> <td>职位:</td> <td><input type="text" name="userInfo.station" /></td> </tr> </tr> <td>电话号码:</td> <td><input type="text" name="userInfo.telephone" /></td> <td>员工级别:</td> <td><select name="userInfo.userLevel"> <option value="4" selected="selected">普通用户</option> <option value="3">部门经理</option> <option value="2">副总</option> <option value="1">总经理</option> <option value="0">超级管理员</option> </select></td> <td>说明:</td> <td><input type="text" name="userInfo.remark" /></td> <td>排序号:</td> <td><input type="text" name="userInfo.orderNo" /></td> </tr> </table> </div> </div> </form> </body> </html> * JUserList.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>用户列表</title> <script type="text/javascript"> //没有选用户就修改 if ("${error_up}" != "") { alert("${error_up}"); } //保存失败 if ("${error_save}" != "") { alert("${error_save}"); } //保存成功 if ("${success_save}" != "") { alert("${success_save}"); } </script> </head> <c:set property="error_up" value="" var="error_up"> </c:set> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a href="#" onclick="formSubmit('toview','_self');this.blur();">查看</a></li> <li id="new"><a href="#" onclick="formSubmit('tocreate','_self');this.blur();">新增</a></li> <li id="update"><a href="#" onclick="formSubmit('toupdate','_self');this.blur();">修改</a></li> <li id="delete"><a href="#" onclick="formSubmit('delete','_self');this.blur();">删除</a></li> <li id="new"><a href="#" onclick="formSubmit('start','_self');this.blur();">启用</a></li> <li id="new"><a href="#" onclick="formSubmit('stop','_self');this.blur();">停用</a></li> <li id="new"><a href="#" onclick="formSubmit('role','_self');this.blur();">分配角色</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 部门列表 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <thead> <tr> <td class="tableHeader"><input type="checkbox" name="selid" onclick="checkAll('userId',this)"></td> <td class="tableHeader">编号</td> <td class="tableHeader">序号</td> <td class="tableHeader">用户名</td> <td class="tableHeader">昵称</td> <td class="tableHeader">性别</td> <td class="tableHeader">薪资</td> <td class="tableHeader">岗位</td> <td class="tableHeader">电话</td> <td class="tableHeader">所属部门</td> <td class="tableHeader">上级领导</td> <td class="tableHeader">状态</td> </tr> </thead> <tbody class="tableBody"> <c:forEach items="${users}" var="u" varStatus="status"> <tr class="odd" onmouseover="this.className='highlight'" onmouseout="this.className='odd'"> <td><input type="checkbox" name="userId" value="${u.userId}" /></td> <td>${u.userId}</td> <td>${status.index+1}</td> <td>${u.username}</td> <td>${u.userInfo.name}</td> <td>${u.userInfo.gender}</td> <td>${u.userInfo.salary}</td> <td>${u.userInfo.station}</td> <td>${u.userInfo.telephone}</td> <td>${u.dept.deptName}</td> <td>${u.userInfo.managerUserInfo.name}</td> <td><c:if test="${u.state==1}"> <a href="stop?userId=${u.userId}"><font color="green">启用</font></a> </c:if> <c:if test="${u.state==0}"> <a href="start?userId=${u.userId}"><font color="red">停用</font></a> </c:if></td> </tr> </c:forEach> </tbody> </table> </div> </div> </form> </body> </html> * JUserRole.jsp # # <%@ page language="java" pageEncoding="UTF-8" isELIgnored="false"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>用户角色分配</title> <link rel="stylesheet" href="${ctx}/staticfile/components/zTree/css/zTreeStyle/zTreeStyle.css" type="text/css"> <script type="text/javascript" src="${ctx}/staticfile/components/zTree/js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="${ctx}/staticfile/components/zTree/js/jquery.ztree.core-3.5.min.js"></script> <script type="text/javascript" src="${ctx}/staticfile/components/zTree/js/jquery.ztree.excheck-3.5.min.js"></script> <SCRIPT type="text/javascript"> var setting = { check : { enable : true }, data : { simpleData : { enable : true } } }; //这里相当于在拿后来传来的数据,后台在传数据的时候,属性名要对应上 var zNodes = ${rolesJSON} $(document).ready(function() { $.fn.zTree.init($("#htZtree"), setting, zNodes); var zTreeObj = $.fn.zTree.getZTreeObj("htZtree"); zTreeObj.expandAll(true); //展开所有树节点 }); //获取到所以用户选中的节点id值 //获取所有选择的节点,提交时调用下面函数 function submitCheckedNodes(treeNode) { var nodes = new Array(); var zTreeObj = $.fn.zTree.getZTreeObj("htZtree"); nodes = zTreeObj.getCheckedNodes(true); //取得选中的结点 var str = ""; for (i = 0; i < nodes.length; i++) { if (str != "") { str += ","; } str += nodes[i].id; } $('#roleIds').val(str); //将拼接完成的字符串放入隐藏域,这样就可以通过post提交 } </SCRIPT> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="save"><a href="#" onclick="submitCheckedNodes();formSubmit('saveUserRole','_self');this.blur();">保存</a></li> <li id="back"><a href="#" onclick="window.history.go(-1);this.blur();">返回</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="${ctx}/staticfile/skin/default/images/icon/currency_yen.png" /> 用户角色分配 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <!--隐藏域用来传递数据 --> <input type="hidden" id="userId" name="userId" value="${userId}" /> <input type="hidden" id="roleIds" name="roleIds" /> <ul id="htZtree" class="ztree"></ul> </table> </div> </div> </form> </body> </html> * JUserUpdate.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>修改用户</title> </script> <script type="text/javascript"> //保存错误 if ("${error_up}" != "") { alert("${error_up}"); } </script> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a onclick="window.history.back()">返回</a></li> <li id="new"><a onclick="formSubmit('update','_self');this.blur()">修改</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 修改用户 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <tr> <td>用户ID:</td> <td><input type="text" name="userId" value="${user.userId}" readonly="readonly" /></td> <td>所属部门:</td> <td><select name="dept.deptId"> <option>--无--</option> <c:forEach items="${depts}" var="dept"> <option value="${dept.deptId}" ${user.dept.deptId==dept.deptId ? "selected='selected'":""}>${dept.deptName}</option> </c:forEach> </select></td> <td>用户账户:</td> <td><input type="text" name="username" value="${user.username}" /></td> <td>用户密码:</td> <td><input type="text" name="password" value="${user.password}" /></td> </tr> <tr> <td>用户状态</td> <td>关闭<input type="radio" name="state" value="0" ${user.state==0? "checked='checked'":""} />开启<input type="radio" name="state" value="1" ${user.state==1? "checked='checked'":""} /></td> </tr> <tr> <td><font color="#ff0000">修改人:</font></td> <td><input type="text" name="userInfo.updateBy" value="${user.userInfo.updateBy}" /></td> <td>更新时间:</td> <td><input type="date" name="userInfo.updateTime" value="<fmt:formatDate value="${user.userInfo.updateTime}" pattern="yyyy-MM-dd"/>" /></td> </tr> <tr> <td>真实姓名:</td> <td><input type="text" name="userInfo.name" value="${user.userInfo.name}" /></td> <td>身份证号:</td> <td><input type="text" name="userInfo.cardNo" value="${user.userInfo.cardNo}" /></td> <td>上级领导:</td> <td><select name="userInfo.managerUserInfo.userInfoId"> <option>--无--</option> <c:forEach items="${userinfos}" var="userinfo"> <option value="${userinfo.userInfoId}" ${user.userInfo.managerUserInfo.userInfoId==userinfo.userInfoId ? "selected='selected'":""}>${userinfo.name}</option> </c:forEach> </select></td> <td>薪水:</td> <td><input type="text" name="userInfo.salary" value="${user.userInfo.salary}" /></td> </tr> <tr> <td>出生日期:</td> <td><input type="date" name="userInfo.birthday" value="<fmt:formatDate value="${user.userInfo.birthday}" pattern="yyyy-MM-dd"/>" /></td> <td>性别:</td> <td>男<input type="radio" name="userInfo.gender" value="男" ${user.userInfo.gender=="男" ? "checked='checked'" :""} />女<input type="radio" name="userInfo.gender" value="女" ${user.userInfo.gender=="女" ? "checked='checked'" :""} /></td> <td>职位:</td> <td><input type="text" name="userInfo.station" value="${user.userInfo.station}" /></td> <td>电话号码:</td> <td><input type="text" name="userInfo.telephone" value="${user.userInfo.telephone}" /></td> </tr> <tr> <td>员工级别:</td> <td><select name="userInfo.userLevel"> <option value="4" ${user.userInfo.userLevel=="4" ? "selected='selected'":""}>普通用户</option> <option value="3" ${user.userInfo.userLevel=="3" ? "selected='selected'":""}>部门经理</option> <option value="2" ${user.userInfo.userLevel=="2" ? "selected='selected'":""}>副总</option> <option value="1" ${user.userInfo.userLevel=="1" ? "selected='selected'":""}>总经理</option> <option value="0" ${user.userInfo.userLevel=="0" ? "selected='selected'":""}>超级管理员</option> </select></td> <td>说明:</td> <td><input type="text" name="userInfo.remark" value="${user.userInfo.remark}" /></td> <td>排序号:</td> <td><input type="text" name="userInfo.orderNo" value="${user.userInfo.orderNo}" /></td> </tr> </table> </div> </div> </form> </body> </html> * JUserView.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../baselist.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>查看用户</title> </script> </script> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="view"><a onclick="window.history.back()">返回</a></li> </ul> </div> </div> </div> </div> <div class="textbox-title"> <img src="../../staticfile/skin/default/images/icon/currency_yen.png" /> 查看用户 </div> <div> <div class="eXtremeTable"> <table id="ec_table" class="tableRegion" width="98%"> <tr> <td>用户ID:</td> <td><input type="text" name="userId" value="${user.userId}" readonly="readonly" /></td> <td>所属部门:</td> <td><select name="dept.deptId"> <option>--无--</option> <c:forEach items="${depts}" var="dept"> <option value="${dept.deptId}" ${user.dept.deptId==dept.deptId ? "selected='selected'":""}>${dept.deptName}</option> </c:forEach> </select></td> <td>用户账户:</td> <td><input type="text" name="username" value="${user.username}" /></td> <td>用户密码:</td> <td><input type="text" name="password" value="${user.password}" /></td> </tr> <tr> <td>用户状态</td> <td>关闭<input type="radio" name="state" value="0" ${user.state==0? "checked='checked'":""} />开启<input type="radio" name="state" value="1" ${user.state==1? "checked='checked'":""} /></td> </tr> <tr> <td><font color="#ff0000">修改人:</font></td> <td><input type="text" name="userInfo.updateBy" value="${user.userInfo.updateBy}" /></td> <td>更新时间:</td> <td><input type="date" name="userInfo.updateTime" value="<fmt:formatDate value="${user.userInfo.updateTime}" pattern="yyyy-MM-dd"/>" /></td> </tr> <tr> <td>真实姓名:</td> <td><input type="text" name="userInfo.name" value="${user.userInfo.name}" /></td> <td>身份证号:</td> <td><input type="text" name="userInfo.cardNo" value="${user.userInfo.cardNo}" /></td> <td>上级领导:</td> <td><select name="userInfo.managerUserInfo.userInfoId"> <option>--无--</option> <c:forEach items="${userinfos}" var="userinfo"> <option value="${userinfo.userInfoId}" ${user.userInfo.managerUserInfo.userInfoId==userinfo.userInfoId ? "selected='selected'":""}>${userinfo.name}</option> </c:forEach> </select></td> <td>薪水:</td> <td><input type="text" name="userInfo.salary" value="${user.userInfo.salary}" /></td> </tr> <tr> <td>出生日期:</td> <td><input type="date" name="userInfo.birthday" value="<fmt:formatDate value="${user.userInfo.birthday}" pattern="yyyy-MM-dd"/>" /></td> <td>性别:</td> <td>男<input type="radio" name="userInfo.gender" value="男" ${user.userInfo.gender=="男" ? "checked='checked'" :""} />女<input type="radio" name="userInfo.gender" value="女" ${user.userInfo.gender=="女" ? "checked='checked'" :""} /></td> <td>职位:</td> <td><input type="text" name="userInfo.station" value="${user.userInfo.station}" /></td> <td>电话号码:</td> <td><input type="text" name="userInfo.telephone" value="${user.userInfo.telephone}" /></td> </tr> <tr> <td>员工级别:</td> <td><select name="userInfo.userLevel"> <option value="4" ${user.userInfo.userLevel=="4" ? "selected='selected'":""}>普通用户</option> <option value="3" ${user.userInfo.userLevel=="3" ? "selected='selected'":""}>部门经理</option> <option value="2" ${user.userInfo.userLevel=="2" ? "selected='selected'":""}>副总</option> <option value="1" ${user.userInfo.userLevel=="1" ? "selected='selected'":""}>总经理</option> <option value="0" ${user.userInfo.userLevel=="0" ? "selected='selected'":""}>超级管理员</option> </select></td> <td>说明:</td> <td><input type="text" name="userInfo.remark" value="${user.userInfo.remark}" /></td> <td>排序号:</td> <td><input type="text" name="userInfo.orderNo" value="${user.userInfo.orderNo}" /></td> </tr> </table> </div> </div> </form> </body> </html> * left.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro"%> <%@ include file="../baselist.jsp"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/left.css" media="all" /> </head> <body id="left_frame"> <div class="PositionFrame_black" id="PositionFrame"></div> <!-- begin1 --> <div id="sidebar" class="sidebar"> <div class="sidebar_t"> <div class="sidebar_t_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_t_r"></div> </div> <div class="panel"> <div class="panel_icon"> <img src="${ctx}/staticfile/skin/default/images/icon/user1_lock.png" /> </div> <div class="panel-header"> <div class="panel-title">权限管理</div> <div class="panel-content"> <ul> <shiro:hasPermission name="部门管理"> <li><a href="${ctx}/sysadmin/dept/list" onclick="linkHighlighted(this)" target="main" id="aa_1">部门管理</a></li> </shiro:hasPermission> <shiro:hasPermission name="用户管理"> <li><a href="${ctx}/sysadmin/user/list" onclick="linkHighlighted(this)" target="main" id="aa_1">用户管理</a></li> </shiro:hasPermission> <shiro:hasPermission name="角色管理"> <li><a href="${ctx}/sysadmin/role/list" onclick="linkHighlighted(this)" target="main" id="aa_1">角色管理</a></li> </shiro:hasPermission> <shiro:hasPermission name="模块管理"> <li><a href="${ctx}/sysadmin/module/list" onclick="linkHighlighted(this)" target="main" id="aa_1">模块管理</a></li> </shiro:hasPermission> </ul> </div> </div> </div> <div class="sidebar_t"> <div class="sidebar_b_l"></div> <div class="sidebar_t_c"></div> <div class="sidebar_b_r"></div> </div> </div> </body> </html> * main.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../base.jsp" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>模块介绍</title> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/main.css" media="all"/> </head> <body> <form> <div class="textbox"></div> <div class="modelDiv"> <table class="modelTable" cellspacing="1"> <tr> <td colspan="2" class="modelTitle">系统维护模块介绍</td> </tr> <tr> <td colspan="2" class="subModelTitle">权限管理</td> </tr> <tr> <td class="model_intro_left">多维权限控制模型:</td> <td class="model_intro_right">横向模块权限控制(菜单、按钮、状态、功能点), 纵向数据权限控制(行政部门、职务等级、管辖部门、管辖人员)。 <p>=严密的数据访问控制,充分保障数据的安全性。</p> </td> </tr> <tr> <td class="model_intro_left">角色管理:</td> <td class="model_intro_right">对人员角色进行权限分配, 实现用户权限批量设置, 支持细粒度权限控制分配(菜单、按钮、状态、功能点)。</td> </tr> <tr> <td class="model_intro_left" width="169">部门管理:</td> <td class="model_intro_right" width="81%">对企业部门进行维护和管理。</td> </tr> <tr> <td class="model_intro_left" width="169">用户管理:</td> <td class="model_intro_right" width="81%">可对系统操作用户进行维护管理, 维护信息包括用户账号、所属部门、功能权限等, 并支持对特殊用户账号锁定禁用操作。 <br/>管辖部门管辖人员:实现对特定部门, 特定人员分管关系。 </td> </tr> <tfoot> <tr> <td colspan="2" class="tableFooter"></td> </tr> </tfoot> </table> </div> </form> </body> </html> * base.jsp # # <%@ page language="java" pageEncoding="UTF-8" isELIgnored="false"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags"%> <c:set var="ctx" value="${pageContext.request.contextPath}" /> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/default.css" media="all" /> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/button.css" media="all" /> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/table.css" media="all" /> <script language="javascript" src="${ctx}/staticfile/js/common.js"></script> * baselist.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="base.jsp"%> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/css/extreme/extremecomponents.css" /> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/css/extreme/extremesite.css" /> * error.jsp # # <%@ page contentType="text/html;charset=UTF-8" isErrorPage="true" %> <%@taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Error Page</title> <script language="javascript"> function showDetail() { var elm = document.getElementById('detail_system_error_msg'); if(elm.style.display == '') { elm.style.display = 'none'; }else { elm.style.display = ''; } } </script> </head> <body style="font-family:微软雅黑;"> <div id="content" style="text-align:left;"> <table> <tr> <td><img alt="system internal error" src="../staticfile/images/error.jpg"/></td> <td> <br> <b>错误信息:</b> <div style="color:blue;padding:15px;"> <s:property value="exception.message"/> </div> <button onclick="history.back();">返回</button> <p><a href="#" onclick="showDetail();">点击这里查看具体错误消息</a>, <br/> 报告以下错误消息给系统管理员,可以更加快速的解决问题; <br/>联系电话:120 </p> </td> </tr> </table> <div id="detail_system_error_msg" style="display:none;text-align:left;padding-bottom:100px;"> <pre><s:property value="exceptionStack"/></pre> </div> </div> </body> </html> * index.jsp # # <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="base.jsp" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>国际物流汇通商贸</title> <link rel="stylesheet" rev="stylesheet" type="text/css" href="${ctx}/staticfile/skin/default/css/login.css" media="all" /> <script src="${ctx}/staticfile/components/pngfix/DD_belatedPNG.js"></script> <script> DD_belatedPNG.fix('*'); </script> </head> <body> <form id="login_main" method="post"> <div id="png"> <div class="box"> <div class="zck"> <div class="inputstyle"> <div class="inputlable">用户名: <input type="text" value="" name="userName" id="userName" onFocus="this.select();" title="请您输入用户名"/> <div id="ts" style="z-index:1;"> </div> </div> <div class="inputlable">密 码: <input type="password" value="" name="password" id="password" onfocus="$('#ts').css('display','none');this.select();" onKeyDown="javascript:if(event.keyCode==13){ submitFind(); }" title="请您输入密码"/> </div> </div> <div class="btnstyle"> <input class="loginImgOut" value="" type="button" onclick="formSubmit('${ctx}/fmain.action','_self');" onmouseover="this.className='loginImgOver'" onmouseout="this.className='loginImgOut'" /> <input class="resetImgOut" value="" type="button" onmouseover="this.className='resetImgOver'" onmouseout="this.className='resetImgOut'" /> </div> </div> <div class="mirro"></div> <logic:notEmpty name="loginFailed"> <c:if test="${loginFailed==1}"> <c:set var="errorInfo" value="用户名或密码错误, 请重新输入!"/> </c:if> <c:if test="${loginFailed==2}"> <c:set var="errorInfo" value="用户名不存在, 请重新输入!"/> </c:if> <div class="erro" id="erro"> <div class="erro_intro"> ${errorInfo} </div> </div> </logic:notEmpty> </div> </div> </div> </form> <script type="text/JavaScript"> document.getElementById('login_main').userName.focus(); </script> </body> </html> * web.xml # # <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <!-- 懒加载加载spring --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:/spring/applicationContext*.xml</param-value> </context-param> <!--Spring的ApplicationContext 载入(懒加载) --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- shiro【权限VS安全】过滤器 --> <filter> <!-- 此处的name 要和配置文件中 filter工厂的id一样 --> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <!-- 让shiro过滤器的生命周期 交给web容器管理 --> <param-name>targetFilterLifecycle</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>shiroFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 解决乱码过滤器(只能解决post的,get的需要手动解决) --> <!-- 乱码过滤器 --> <filter> <filter-name>characterFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 分发器 --> <servlet> <servlet-name>springmvc_dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!-- 启动spring-mvc配置文件 --> <param-value>classpath:/spring/spring-mvc-config.xml</param-value> </init-param> <!-- 设置优先级 --> <load-on-startup>1</load-on-startup> </servlet> <!-- 分发器的映射 --> <servlet-mapping> <servlet-name>springmvc_dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 欢迎界面 --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> * index.jsp # # <%@ page contentType="text/html; charset=utf-8"%> <html> <head> </head> <script type="text/javascript"> //程序首页,进来就直接发请求 top.location.href = "tologin.action"; //javascript页面跳转,防止页面嵌套,直接跳到最顶部窗口 </script> <body> </body> </html> * pom.xml # # <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.peng</groupId> <artifactId>ssmm</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>ssmm Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <!-- junit --> <junit.version>4.12</junit.version> <!-- spring --> <spring.version>4.2.3.RELEASE</spring.version> <!-- mybatis --> <mybatis.version>3.2.8</mybatis.version> <mybatis.spring.version>1.2.2</mybatis.spring.version> <mybatis.paginator.version>1.2.15</mybatis.paginator.version> <!-- mysql --> <mysql.version>5.1.32</mysql.version> <!-- --> <bonecp-spring.version>0.8.0.RELEASE</bonecp-spring.version> <!-- --> <druid.version>1.0.9</druid.version> <!-- mapper --> <mapper.version>2.3.2</mapper.version> <!-- --> <pagehelper.version>3.4.2</pagehelper.version> <!-- --> <jsqlparser.version>0.9.1</jsqlparser.version> <!-- log4j --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> <!--jstl --> <jstl.version>1.2</jstl.version> <!--servlet --> <servlet-api.version>2.5</servlet-api.version> <!--jsp --> <jsp-api.version>2.0</jsp-api.version> <!--c3p0 --> <c3p0.version>0.9.1.2</c3p0.version> <jackson.version>2.9.3</jackson.version> <!-- servlet-api版本号 --> <servlet_api.version>4.0.0-b07</servlet_api.version> </properties> <dependencies> <!-- ztree --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <!-- c3p0 --> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>${c3p0.version}</version> </dependency> <!-- 日志文件管理包 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <!-- Mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis.spring.version}</version> </dependency> <dependency> <groupId>com.github.miemiedev</groupId> <artifactId>mybatis-paginator</artifactId> <version>${mybatis.paginator.version}</version> </dependency> <!-- 通用Mapper,所有的单表的代码都不用编写 --> <dependency> <groupId>com.github.abel533</groupId> <artifactId>mapper</artifactId> <version>${mapper.version}</version> </dependency> <!-- MySql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <!-- 超高性能连接池 --> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP-java6</artifactId> <version>2.3.9</version> <scope>compile</scope> </dependency> <!-- Apache Shiro 权限架构 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-all</artifactId> <version>1.2.3</version> </dependency> <!-- 分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>${pagehelper.version}</version> </dependency> <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> <version>${jsqlparser.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <!-- JSP相关 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>${servlet-api.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> <version>${jsp-api.version}</version> <scope>provided</scope> </dependency> <!-- 字符加密、解密 --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version> </dependency> <!-- 数据校验 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.1.3.Final</version> </dependency> <!-- 上传组件包 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version> </dependency> <!-- servlet_api依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${servlet_api.version}</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <!-- tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>8077</port> <!-- 斜杠代表(代表项目地址:localhost:/8077) --> <path>/</path> </configuration> </plugin> </plugins> </build> </project> ### 技术 ### * 框架 * Maven+Spring+SpringMVC+Mybatis * 图示 * ![99DkYv4.png][] * 登录【权限+加密】s * Shiro框架 * 图示 * [![jY5OQU5.png][]][jY5OQU5.png] * 树结构显示 * zTree框架 * 图示 * ![0Wtl3ad.png][] * 表模型设计 * PowerDesigner15工具 * 图示 * ![J4PgWqX.png][] [nD8ui2d.png]: https://i.imgur.com/nD8ui2d.png [20180109234346673]: /images/20220602/efc00e1538e94527991bbd781a768d96.png [vQmnJGD.png]: https://i.imgur.com/vQmnJGD.png [MYh7JzV.png]: https://i.imgur.com/MYh7JzV.png [x4Mg7Pg.png]: https://i.imgur.com/x4Mg7Pg.png [PnQl7Xf.png]: https://i.imgur.com/PnQl7Xf.png [PrukGwi.png]: https://i.imgur.com/PrukGwi.png [9eVzxfR.png]: https://i.imgur.com/9eVzxfR.png [QCXv6a6.png]: https://i.imgur.com/QCXv6a6.png [rvJNS7C.png]: https://i.imgur.com/rvJNS7C.png [8mYa8k8.png]: https://i.imgur.com/8mYa8k8.png [cz0zwZN.png]: https://i.imgur.com/cz0zwZN.png [wS6QXHq.png]: https://i.imgur.com/wS6QXHq.png [xoc70jL.png]: https://i.imgur.com/xoc70jL.png [tq6zNfL.png]: https://i.imgur.com/tq6zNfL.png [GVHWeNv.png]: https://i.imgur.com/GVHWeNv.png [fP8tyG8.png]: https://i.imgur.com/fP8tyG8.png [99DkYv4.png]: https://i.imgur.com/99DkYv4.png [jY5OQU5.png]: https://i.imgur.com/jY5OQU5.png [0Wtl3ad.png]: https://i.imgur.com/0Wtl3ad.png [J4PgWqX.png]: https://i.imgur.com/J4PgWqX.png
相关 大数据正式5 大数据正式5 常见的shell命令 管道命令 管道符| 将两个命令隔开,左边命令的输出就会作为管道右边命令的输入 连续使 旧城等待,/ 2022年06月06日 10:29/ 0 赞/ 233 阅读
相关 大数据正式2 大数据正式2 用户身份与用户组记录的文件 在Linux系统当中,默认情况下所有的系统上的账号信息都记录在/etc/passwd这个文件内(包括root用户), 快来打我*/ 2022年06月06日 08:38/ 0 赞/ 161 阅读
相关 大数据正式10 大数据正式10 jQuery 定义:jQuery是一个“写的更少”,但“做的更多”的轻量级JavaScript函数库 优势 1. 可 ゞ 浴缸里的玫瑰/ 2022年06月05日 06:24/ 0 赞/ 248 阅读
相关 大数据正式32 大数据正式32 Spring中的JDBC jar包准备 ![zW1gEQQ.png][] bean+properties普通配置 悠悠/ 2022年06月03日 08:44/ 0 赞/ 165 阅读
相关 大数据正式27 大数据正式27 Spring 先来张图简单看一下 ![oQySJMC.png][] spring框架的特点 1 悠悠/ 2022年06月03日 04:38/ 0 赞/ 144 阅读
相关 大数据正式41之汇通项目 大数据正式41之汇通项目 先睹为快 登录页面 ![nD8ui2d.png][] 系统管理 ![20180 小灰灰/ 2022年06月02日 09:23/ 0 赞/ 474 阅读
相关 大数据正式37 大数据正式37 Maven 传统项目存在的弊端 1. 导入jar包得经验丰富 2. 传统项目打包方式不通用,不能很好的支持聚合项 左手的ㄟ右手/ 2022年06月02日 01:46/ 0 赞/ 157 阅读
相关 大数据正式36 大数据正式36 MyBatis的接口形式 注意两点 1. 接口名---namespace值对应 2. 方法名---id一致 淩亂°似流年/ 2022年06月02日 01:12/ 0 赞/ 260 阅读
相关 大数据正式34 大数据正式34 Spring+SpringMVC 小例子 效果图 ![hsIEQmd.png][] 功能说明 川长思鸟来/ 2022年06月02日 00:16/ 0 赞/ 273 阅读
还没有评论,来说两句吧...