介绍
ctjee框架,前身为BMS(Business Manage SYS)架构。2009年始创于珠海。作者一直在寻求以原为本设计思想,内容可控。摒弃第三方框架(Spring、Struts)分层迭代、接口调用、映射Bean、配置文件等等繁琐的方法。以MVC为模型,简单、直接、迅速,技术化繁为简,而非把时间浪费在架构的配置、学习、调试、使用和问题处理上。
ctjee框架经过近十年,1000多个,大中小软件项目的测试、应用、改造、升级的演变。也逐步开放服务于个人、企业及政府机构。最终的目的是实现用户自主构建应用平台。
ctjee框架在设计和使用上,基于本身的Servlet技术,完全采用源码的驱动方法。通过OP层调用SQL层。配备变量监听、安全访问、事务模式及完善的异常追踪日志记录。同时在原框架中配置有基础数据输入校验功能(必输项、长度),减少开发人员的工作量增强软件质量。
ctjee框架以数据库表为单元或称之为模块。 使用代码生成器时必须要确保单元表包含:表中文名、表主键(一个)、以及字段和字段描述。在Dao层采用面向原子的操作结构设计,在访问数据时可以交叉使用非常方便。
ctjee框架可以开发所有的WEB、手机、微信、小程序应用系统,或者您可以在它的基础上封装更多个性化的结构。
ctjee框架未来的发展方向:持续迭代MySql、Oracle及多UI版本;为使用者提供配套的应用小程序、及前后台应用服务组件;为企业提供安全责任制的应用级服务。
系统结构
主要特性
访问路径具有安全验证机制。分别支持.ext|.com|.ando。
单点登录
完整的后台管理,具备人员-部门-权限-菜单机制,人员多角色切换功能。
分页、查询、新增、修改、删除、数据字段验证(必输项+长度)+ java后台管理代码。一建生成,直接可用。
支持界面跳转及异步处理两种数据交互模式,并通过数据缓冲区直接与持久层进行封装,方便数据赋值。
框架完整封装与JBPM工作流的无缝对接,支持表单的审批、核准、退回、完成等流程任务。
使用多线程分布式计算技术,解决大数量实时数据统计、报表查询及大数据量计算任务。
通过缓存字典+自定义标签,实现实时字典翻译功能。
支持多维数据源访问链路,用于交互系统数据报表检索和查询。支持数据库事务模式;支持存储过程调用。
支持自定义表单,自定义工作流。
支持框架自由伸缩式业务扩展。
基础组件
- Bootstrap ace
- jQuery
- dwr
- Ajax
- MiniUI
- bootstrapAutocomplete
- zeroModal
- mloading
- My97DatePicker
- ppfiledown(多文件流传输)
- jquery.tips.js
- zTree_v3
- b.tag(自定义标签)
- .druid-1.0.1(数据库连接池)
- .template.xlsx(百万大数据导出xlsx)
- .jacob(文档转换工具)
-
.jbpm(工作流引擎)
- .netty-all-5.0.0(通讯服务组件)
- .json-lib-2.2.2-jdk15
- .log4j-1.2.17(日志工具)
- .Highcharts(图表工具)
- .fckeditor(在线编辑器)
技术选型
1、系统环境:Java EE 8 ,Servlet 3.0
2、持久层:Alibaba Druid 1.2.x
3、视图层:Bootstrap ace
基础功能
用户档案:创建系统操作者的基础档案信息、用户名、账号、密码等等。
用户角色:设置用户的角色、根据角色分配用户的操作菜单及功能,支持用户多角色。
角色管理:用于维护角色的基础信息。为角色分配提供基础数据支撑。
部门管理:隶属系统组织机构(总公司、分公司、部门),为用户档案做数据支撑。
菜单管理:主要配置菜单项及菜单树结构。
缓存字典:运行时加载固定数据字典,通常指不经常维护的数据字典。结合系统函数及标签一起使用。
运行参数:系统运行时的一些调整配置。
日志查询:系统记录用户操作日志记录和查询。
代码生成:前后端代码的生成(java、jsp)及动态CRUD语句。
资源监控:系统CPU、内存、磁盘、堆栈等相关信息。
表单设计器:拖动表单元素生成相应的HTML代码。
连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
代码案例
目录结构
开发工具下载
Eclipse
![](/website/images/ctjset.png)
单点登录
完整的后台管理,具备人员-部门-权限-菜单机制,人员多角色切换功能。
分页、查询、新增、修改、删除、数据字段验证(必输项+长度)+ java后台管理代码。一建生成,直接可用。
支持界面跳转及异步处理两种数据交互模式,并通过数据缓冲区直接与持久层进行封装,方便数据赋值。
框架完整封装与JBPM工作流的无缝对接,支持表单的审批、核准、退回、完成等流程任务。
使用多线程分布式计算技术,解决大数量实时数据统计、报表查询及大数据量计算任务。
通过缓存字典+自定义标签,实现实时字典翻译功能。
支持多维数据源访问链路,用于交互系统数据报表检索和查询。支持数据库事务模式;支持存储过程调用。
支持自定义表单,自定义工作流。
支持框架自由伸缩式业务扩展。
- Bootstrap ace
- jQuery
- dwr
- Ajax
- MiniUI
- bootstrapAutocomplete
- zeroModal
- mloading
- My97DatePicker
- ppfiledown(多文件流传输)
- jquery.tips.js
- zTree_v3
- b.tag(自定义标签)
- .druid-1.0.1(数据库连接池)
- .template.xlsx(百万大数据导出xlsx)
- .jacob(文档转换工具)
- .jbpm(工作流引擎)
- .netty-all-5.0.0(通讯服务组件)
- .json-lib-2.2.2-jdk15
- .log4j-1.2.17(日志工具)
- .Highcharts(图表工具)
- .fckeditor(在线编辑器)
用户角色:设置用户的角色、根据角色分配用户的操作菜单及功能,支持用户多角色。
角色管理:用于维护角色的基础信息。为角色分配提供基础数据支撑。
部门管理:隶属系统组织机构(总公司、分公司、部门),为用户档案做数据支撑。
菜单管理:主要配置菜单项及菜单树结构。
缓存字典:运行时加载固定数据字典,通常指不经常维护的数据字典。结合系统函数及标签一起使用。
运行参数:系统运行时的一些调整配置。
日志查询:系统记录用户操作日志记录和查询。
代码生成:前后端代码的生成(java、jsp)及动态CRUD语句。
资源监控:系统CPU、内存、磁盘、堆栈等相关信息。
表单设计器:拖动表单元素生成相应的HTML代码。
连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
Eclipse Java EE IDE for Web Developers. Version: Neon Release (4.6.0)
Eclipse Neon Release (4.6.0) 下载
MySql(5.5.28)
MySql客户端工具heidisql.exe
JAVA JDK 8.0
Apache-tomcat-8.0.29
apache-tomcat-8.0.29_64_ok.rar 下载
ChromePortable.exe
安装及配置工具
安装,JDK
1、双击运行“jdk_8.0.1310.11_64.exe”;
2、弹出安装程序的对话框,点击“下一步”;
![](/website/images/install/jdk_1.png)
3、选择安装JDK的目录,“D:\Program Files\Java\jdk1.8.0_131”,点击“下一步”;
![](/website/images/install/jdk_2.png)
4、选择JRE的安装目录,“D:\Program Files\Java\jre1.8.0_131”,点击“下一步”;
![](/website/images/install/jdk_3.png)
5、安装就结束啦。
![](/website/images/install/jdk_4.png)
6、配置JDK环境变量,1、桌面图标“计算机”(或者“我的电脑”)右击,单击“属性”;
![](/website/images/install/jdk_5.png)
7、在弹出框,单击“高级系统设置”,选择“高级”,单击按钮“环境变量”;
![](/website/images/install/jdk_6.png)
8、在弹出的“环境变量”框中,选择下方“系统变量(S)”下面的按钮“新建”;
![](/website/images/install/jdk_7.png)
9、设置环境变量,3个变量都设置好;
![](/website/images/install/jdk_8.png)
安装,apache-tomcat-8.0.29_64_ok.rar
1、apache-tomcat-8.0.29_64_ok.rar 解压到D:\apache-tomcat-8.0.29
![](/website/images/install/tomcat_1.png)
安装,MySql (5.5.28)
1. 双击mysql-5.5.28-win32.exe(或者mysql-5.5.28-winx64)点击下一步,接受许可。
2. 点击custom
![](/website/images/install/mysql_1.png)
3. 将安装路径修改为d盘
![](/website/images/install/mysql_2.png)
![](/website/images/install/mysql_3.png)
![](/website/images/install/mysql_4.png)
4. 点击下一步,安装
5. 安装过程中弹出如下窗口,一直点击下一步即可
![](/website/images/install/mysql_5.png)
6. 完成安装时注意勾选运行mysql实例配置工具
![](/website/images/install/mysql_6.png)
7. 在弹出的实例配置向导中点击下一步
![](/website/images/install/mysql_7.png)
8. 选择detailed配置,点击下一步
![](/website/images/install/mysql_8.png)
9. 选择develop Machine,点击下一步
![](/website/images/install/mysql_9.png)
10. 选择Multifunctional Database,点击下一步
![](/website/images/install/mysql_10.png)
11. 下图中直接点击下一步
![](/website/images/install/mysql_11.png)
12. 选择Decision Support,点击下一步
![](/website/images/install/mysql_12.png)
13. 按下图配置后,点击下一步
![](/website/images/install/mysql_13.png)
14. 编码选择utf8
![](/website/images/install/mysql_14.png)
15. 配置服务及环境变量,点击下一步
![](/website/images/install/mysql_15.png)
16. 输入新密码,新密码为root,点击下一步
![](/website/images/install/mysql_16.png)
17. 点击执行
![](/website/images/install/mysql_17.png)
18. 配置成功,点击完成
![](/website/images/install/mysql_18.png)
安装,MySql客户端工具heidisql.exe
1、mysqlsqlClient.rar 解压到D:\D:\mysqlsqlClient。双击heidisql.exe即可使用。
![](/website/images/install/mysqlsqlClient_1.png)
导入ctjee项目
在网站首页或者定制版中,下载ctjee框架.rar和mysql数据库脚本文件。http://www.ctjee.com/并将下载后的ctjee.rar解压。
1、在电脑盘符创建一个文件夹,做为工程目录(文件夹名称非中文)
![](/website/images/install/imp_1.png)
2、双击打开eclipse.exe,选择已创建的工程名称
![](/website/images/install/imp_2.png)
3、点击[OK],进入编辑环境
![](/website/images/install/imp_3.png)
4、选择[File]菜单下的[Import]导入
![](/website/images/install/imp_4.png)
5、在弹出框中选择[General]-[Existing Projects into Workspace] 点击[Next]
![](/website/images/install/imp_5.png)
6、在弹出框中选择[Browse]-弹出项目导入对话框,ctjee已解压的项目路径。
![](/website/images/install/imp_6.png)
7、ctjee已解压的项目路径。是将下载的ctjee.rar解压后的文件夹位置,选择好后点击[确定]
![](/website/images/install/imp_7.png)
8、选择[Copy projects into Workspace],点击[Finish]
![](/website/images/install/imp_8.png)
9、项目导入完成。
![](/website/images/install/imp_9.png)
配置运行ctjee
1、设置开发工具编码集UTF-8,选择[windows]-[Preferences]
![](/website/images/install/runset_1.png)
2、输入workspace,[Other] 选择UTF-8编码
![](/website/images/install/runset_2.png)
3、配置运行服务器 Tomcat 8.0
![](/website/images/install/runset_3.png)
4、选择服务器 Tomcat 8.0,选择[Next]
![](/website/images/install/runset_4.png)
5、选择服务器 Tomcat 8.0安装路径
![](/website/images/install/runset_5.png)
6、选择apache-tomcat-8.0.29_64_ok.rar解压后的Tomcat 8.0路径,选择[确定]
![](/website/images/install/runset_6.png)
7、选择[Next]
![](/website/images/install/runset_7.png)
8、选择ctjee工程,点击[Add]发布到Tomcat 8.0服务器,选择[Finish]完成
![](/website/images/install/runset_8.png)
![](/website/images/install/runset_9.png)
9、 配置Java构建路径
![](/website/images/install/runset_10.png)
![](/website/images/install/runset_11.png)
10、 添加运行库Server Runtime,选择[Next]
![](/website/images/install/runset_12.png)
![](/website/images/install/runset_13.png)
11、 添加JRE System Libray,选择[Add Libray]
![](/website/images/install/runset_11.png)
![](/website/images/install/runset_14.png)
![](/website/images/install/runset_15.png)
12、 配置完成
![](/website/images/install/runset_16.png)
13、 配置数据库账号/密码
配置dbconfig.properties数据库账号/密码
![](/website/images/install/runset_17.png)
配置jbpm.hibernate.cfg.xml数据库账号/密码
![](/website/images/install/runset_18.png)
15、 导入mysql数据库脚本
![](/website/images/install/datascrpt.png)
16、 选择[Server]-[Tomcat v8.0 Server at localhost]启动运行
![](/website/images/install/runset_19.png)
17、 运行成功
![](/website/images/install/runset_20.png)
18、 前后台的basePath与web.xml中设置有关
WEBPATH的值都取自于<param-name>webpath</param-name>
开发流程介绍
1、以数据库为系统设计核心,我们把一张物理表称之为一个模块或一个单元。表中包含表名、表描述、主键、字段描述。
2、使用生成器对单元表进行代码生成。包含jsp-op-sql三层代码。代码生成器的使用
3、jsp中分别有文件后缀_list(列表页)、_add(新增页)、_edit(修改页)、_detail(详情页)、_ing(审批中)、_end(审批结束)
4、java中OpManger表示:业务逻辑处理、Sql表示:单元表DML语句
5、jsp表单提交到OpManger业务逻辑处理,通过OP中的@function注解进行定位
表单提交的映射名称有三种:*.ext、*.com、*.ando、*.home
*.ext:转义并对客户端进行安全验证(可使用)
*.com:转义;对客户端不验证(可使用)
*.ando:不转义;对客户端不验证;通常用作接口或移动端访问使用(可使用)
*.home:不转义;对客户端不验证;服务器端首页跳转,仅用一次。(不建议使用)
6、获取jsp表单的字段值,可以使用getValueAt("字段名");
7、获取Session值,可以使用getSessionData("字段名");
8、在Op中有三类执行SQL语句的方法
List(String sql);查询 sql select 集合语句;
Map(String sql); 查询 sql select 单行语句;
Update(String sql); 执行 sql insert\update\delete语句;
9、事务处理
事务提交:commitStraction();
事务回滚:rollbackStraction();
10、Response相应结果返回
STREAM模式返回数据流:setReplyPage("STREAM"+toJsonMap(msg));
跳转模式:setReplyPage(webpath+"/web/main/profile.jsp");
11、开发流程示例:
![](/website/images/install/ctjee.png)
查询表格jqGrid
bootsrap这个版本中table数据列表使用jqGri插件实现。
1.页面包含 grid-table、grid-pager 标签
2.js部分 url、colNames、colModel关键参数
3.java 通过@function(id = "zftest_selectPageListBootstrap.ext", name = "查询分页数据") 注解进入selectPageListBootstrap()函数
参考来源: http://www.trirand.com/blog/?page_id=6弹出子窗口
关闭子窗口
新增功能
修改功能
删除功能
遮罩功能
后台跳转和异步
前后端文件上传
1.页面包含 ppfiledown.js 标签
2.java 通过注解注入函数@function(id = "upUserImgAndUpImgBySessUserId.ext", name = "更新用户头像根据SessionID") 调用upUserImgAndUpImgBySessUserId()
前后端文件下载
1.页面包含 iframe 标签
2.java 通过注解注入函数@function(id = "logdownfile.com", name = "下载浏览器") 调用logdownfile()
前后端Excel导入
1.页面包含 ppfiledown.js 标签
2.java 通过注解注入函数@function(id = "wagesFileImport.ext", name = "导入业务Excel") 调用wagesFileImport()
前后端Excel导出
1.页面包含 iframe 标签
2.在文件sys.properties中配置列名、列宽、和列变量名称
3.java 通过注解注入函数@function(id = "downfileExc.ext", name = "下载浏览器") 调用downfileExc()
缓冲区数据在Java端翻译字典
1.在java端调用继承类中的toJsonMapDictAddColumn()/toJsonArrayDictAddColumn()
properties配置文件使用
b标签使用
数据主键生成
调用存储过程
代码生成器的使用
1、打开[系统工具]-[代码生成]
![](/website/images/install/coder_1.png)
2、输入数据库表名称,[确定]完成,代码生成完成
3、停止服务
![](/website/images/install/coder_3.png)
4、刷新工程
![](/website/images/install/coder_4.png)
5、代码生成完毕
![](/website/images/install/coder_5.png)
6、配置菜单即可使用
![](/website/images/install/coder_6.png)
数据交互方法
1、系统将统一管理前后台交互数据的Request变量,通过中间数据缓存区进行操作
![](/website/images/install/data_1.png)
通过这个变量监控,你可以看见所有传递的变量值