jeesite介绍与安装
- 格式:doc
- 大小:68.49 KB
- 文档页数:7
JeeSite开发(⼀)——JeeSite4开发基础实例⽬录: 〇、开发环境 ⼀、JeeSite介绍 ⼆、获取JeeSite4 三、运⾏JeeSite后台(部署运⾏) 四、启动并访问 五、增加⼀个功能模块〇、开发环境 JDK1.8、eclipse、maven、MySQL57⼀、JeeSite介绍 JeeSite 基于最主流的 Spring Boot 2 + MyBatis + Shiro + J2Cache/Redis + Beetl 的稳定架构。
前端采⽤了⽬前极为流⾏的扁平化响应式的设计风格,可以完美兼容电脑,平板,⼿机等多个平台。
基于 jQuery + Bootstrap + AdminLTE 实现。
⽤JeeSite可以快速搭建⼀个web⽹站,⽽且可以不写或者只需写很少的业务代码。
⼆、获取JeeSite4 以下为其⽬录:三、运⾏JeeSite后台(部署运⾏)3.1 引⼊项⽬ 1.将以上的web⽬录复制到⾃⼰的⼯作⽬录,并按需重命名(例如:jeesite-demo)。
2.打开其中的poi.xml⽂件,修改其中的第⼗三⾏,改为您刚刚修改的⽂件夹名,例如:<artifactId>jeesite-demo</artifactId> 3.⽽后在eclipse中将其引⼊进来,右键空⽩处->Import->选择Maven下的Existing Maven Projects,点确定,此时Maven会⾃动加载依赖包,效果如下。
3.2 初始化数据库 1.配置my.ini:打开MySQL安装⽂件夹下的my.ini⽂件, 在[mysqld]下增加 sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 2.在MySQL中创建⽤户和数据库set global read_only=0;set global optimizer_switch='derived_merge=off';create user 'jeesite'@'%' identified by 'jeesite';create database jeesite DEFAULT CHARSET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';grant all privileges on jeesite.* to 'jeesite'@'%' identified by 'jeesite';flush privileges; 3.在刚刚引⼊的项⽬中,找到 /src/main/resources/config/application.yml ⽂件,修改MySQL数据库配置:# 数据库连接jdbc:# Mysql 数据库配置type: mysqldriver: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/jeesite?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNullusername: jeesitepassword: jeesitetestSql: SELECT 1 4.双击运⾏项⽬下的 /bin/init-data.bat 脚本,将会⾃动初始化数据库(建表)四、启动并访问 1.可在 /src/main/resources/config/application.yml ⽂件中修改服务器端⼝和部署路径server:port: 8980servlet:context-path: /jeesite-demotomcat:uri-encoding: UTF-8 2.启动:由于JeeSite集成了Spring boot框架,即内部集成了tomcat服务器,所以只需右键点击com.jeesite.modules.config.Application.java⽂件,再点击 Run As -> Java Application 即可启动服务。
第3章内置组件的应用作者:ThinkGem更新日期:2014-01-05 1.经常使用组件1.1.布局组件布局文件配置:/ jeesite/src/main/webapp/WEB-INF/默许布局文件:/ jeesite/src/main/webapp/WEB-INF/views/layouts/非公共,自己成立的布局文件:/ jeesite/src/main/webapp/WEB-INF/views/模块途径/layouts/布局文件.jsp利用布局文件:JSP的head里添加:<meta name="decorator" content="default"/> 1.2.用户工具应用处景:在java文件或jsp页面上,获取当前用户相关信息1.获取当前用户:1)();2)()3)${fns:getUser()}2.获取当前用户部门:1)()2)${fns:getOfficeList()}3.获取当前用户区域:1)()2)${fns:getAreaList()}4.获取当前用户菜单:1)()2)${fns:getMenuList()}5.获取当前用户缓存:1)(key);2)${fns:getCache(cacheName, defaultValue)}6.设置当前用户缓存:1)(key);1.3.全局缓存应用处景:系统字典1.设置应用程序缓存:(key);2.获取应用程序缓存:(key);1.4.字典工具应用处景:系统全局固定的字典数据,java或jsp中获取字典相关数据。
1.依照类型和值获取字典标签(列表取值):a)(String value, String type, String defaultValue)b)${ fns:getDictLabel (value, type, defaultValue)}2.依照类型和标签获取字典值(依照标签取值):a)(String label, String type, String defaultLabel)b)${fns:getDictValue(label, type, defaultValue)}3.依照类型获取字典列表(下拉框,复选框,单项选择框):a)(String type)b)${fns:getDictList(type)}1.5.功能权限操纵应用处景:访问功能授权,查看权限,编辑权限,导入权限,审核权限。
IDEA部署jeesite3完美运⾏教程详解
jeesite3的官⽅⽂档⾮常坑爹,按那个部署是不能正常运⾏的,IDEA2018/2019完美运⾏教程如下:
2. 打开IDEA,选择open,导⼊克隆的 jeesite项⽬
3. 修改 jeesite\jeesite\src\main\resources\jeesite.properties 中的数据库⽤户名和密码,改成⾃⼰电脑的即可,如果有提⽰需要MAVEN下载jar包,选择auto那个。
jeesite.properties 配置⽂件最下⾯有个被注释掉的⼯程路径配置,那个不要管,不要按官⽅⽂档说明去修改!
4. 在navicat中创建 jeesite 数据库后运⾏ init-db.bat,创建出 jeesite3项⽬需要的表
5.返回IDEA,在下⽅的Terminal⼯具栏中输⼊:mvn clean install 命令,⾃动构架⼯程。
6.提⽰“BUILD SUCCESS"时,配置tomcat
7.0。
AJP port那⼀栏要为空,JVM那边要填上 -Dfile.encoding=UTF-8
7. 选择Apply然后OK,运⾏Tomcat即可正常启动 jeesite3项⽬
8. 浏览器进⼊“127.0.0.1:8080/jeesite",输⼊⽤户名 thinkgem 和密码 admin 即可正常访问
到此这篇关于IDEA部署jeesite3完美运⾏教程详解的⽂章就介绍到这了,更多相关IDEA部署jeesite3内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
jeesite 字段控制Jeesite字段控制为标题,下面将介绍Jeesite中的字段控制功能以及它的作用。
一、什么是Jeesite字段控制?Jeesite是一款基于Java开发的开源框架,用于快速搭建企业级Java Web应用。
在Jeesite中,字段控制是指通过对表单中的字段进行配置和管理,实现对字段的显示、验证、权限等方面的控制。
通过字段控制,开发人员可以灵活地对表单进行定制,满足不同业务需求。
二、字段控制的作用1. 显示控制:字段控制可以根据业务需求决定字段是否显示。
例如,在某些情况下,某个字段可能需要隐藏起来,只在特定条件下才显示出来,通过字段控制就可以实现这一功能。
2. 验证控制:字段控制可以对字段进行验证,确保用户输入的数据符合一定的规则和格式。
例如,对于手机号码字段,可以通过字段控制设置必须为11位数字的验证规则。
3. 权限控制:字段控制可以对字段的访问权限进行管理。
通过字段控制,可以设置某些字段只能由特定角色或用户访问,从而实现对敏感数据的保护。
4. 其他控制:字段控制还可以实现其他一些功能,如字段的默认值设置、只读控制等。
三、如何进行字段控制在Jeesite中,字段控制是通过在实体类中使用注解来实现的。
以下是一些常用的字段控制注解:1. @FormField:用于配置字段的显示名称、验证规则等信息。
2. @ExcelField:用于配置字段在Excel导入导出时的相关信息。
3. @ShowInView:用于配置字段在列表、详情等页面中的显示方式。
4. @DataScope:用于配置字段的权限控制范围。
5. @DictType:用于配置字段的字典类型,实现数据字典的功能。
四、字段控制的实例下面以一个示例来说明字段控制的实际应用。
假设有一个用户管理系统,其中包含一个用户信息表,需要对用户信息进行管理和展示。
在这个示例中,我们可以使用字段控制来实现以下功能:1. 设置用户名字段为必填项,并限制长度为6-20个字符。
JeeSite(V1.26)项目安装与配置前期工作
下载jeesite项目v1.26。
1、配置maven环境。
(一)下载maven。
https:///
(二)在windows下环境变量配置path。
在配置好环境之后,在cmd命令中输入mvn –v
出现此弹出,说明环境已经配置好了。
(三)在Eclipse中配置maven。
2、下载工程所需要的包。
运行Eclipse.bat进行maven安装包的下载。
项目所需要的包,会自动从网上下载(前提是你的电脑能上网)。
关于下载的包会放在哪里?
(默认会放在你的C:\Users\Administrator \.m2\repository)
如果想更改路径的话,需要在maven文件夹中找到conf下面的settings.xml.
打开,添加
<localRepository>路径</localRepository>
此时放在E盘下
在E盘路径下自动下载工程所需要的jar包。
3、导入工程右键import
导入结构
4、数据库的连接(Mysql)
在mysql数据库中建立jeesite数据库。
执行int-db.bat
查看数据库,是否创建成功。
修改配置中数据库的账号密码
5、运行
右键项目——Run As——9 Maven install。
然后发布到服务器Tomcat
http://localhost:8080/jeesite/a。
jeesite elastisearch 全文检索实践-回复实践jeesite elastisearch 全文检索的过程需要经过以下几个步骤:第一步:理解全文检索的概念和原理全文检索是一种基于文本内容的检索方式,通过建立索引,实现对文本内容的快速搜索。
而Elasticsearch 是一个基于Lucene 的全文检索引擎,支持分布式搜索和分析。
第二步:准备工作在实践jeesite elastisearch 全文检索之前,需要准备以下工作:1. 安装Elasticsearch:从官方网站下载Elasticsearch,并按照指南进行安装;2. 部署jeesite:在本地或服务器上部署jeesite,确保jeesite 的环境配置正确;3. 导入数据:将需要进行全文检索的数据导入到Elasticsearch 中,可以使用Elasticsearch 提供的API 或工具进行导入。
第三步:配置Elasticsearch 连接在jeesite 中配置Elasticsearch 的连接信息,包括Elasticsearch 的IP 地址、端口号、用户名和密码等。
可以通过配置文件或代码来完成连接配置。
第四步:创建索引在Elasticsearch 中,索引是存储和搜索数据的容器,类似于数据库中的表。
在jeesite 中,通过配置实体类的注解信息,将需要进行全文检索的实体类映射成Elasticsearch 的索引,以便进行索引的创建。
第五步:建立映射关系在Elasticsearch 中,映射是定义索引的结构和字段类型的过程。
需要根据实体类的字段信息,定义相应的映射关系,以便Elasticsearch 可以正确地进行分词和检索。
第六步:实现数据同步为了保证索引数据和实际数据的同步,需要对jeesite 的数据进行监听,当数据发生新增、修改或删除操作时,及时更新对应的索引数据。
第七步:编写全文检索接口在jeesite 中编写全文检索的接口,可以根据需求实现搜索结果的排序、分页、过滤等功能。
第2章文件结构与配置作者:ThinkGem更新日期:2014-4-8 1.文件结构1.1.源码目录src/main/java1.2.资源目录src/main/resource1.3.发布目录src/main/webapp1.4.执行目录dbbin2.jeesite.properties2.1.数据源配置# 数据库驱动,连接设置。
jdbc.driver=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orclername=jeesitejdbc.password=123456# 连接池设置,初始大小,最小,最大连接数。
jdbc.pool.init=1jdbc.pool.minIdle=3jdbc.pool.maxActive=20# 测试连接sql语句jdbc.testSql=SELECT'x'FROM DUAL2.2.系统配置# 配置产品名称,版权日期和版本号productName=JeeSite AdmincopyrightYear=2014version=V1.1.1# 是否是演示模式,如果是,则如下模块,无法进行保存操作# sys: area/office/user/role/menu/dict, cms: site/category demoMode=false# 管理端跟路径adminPath=/a# 前端跟路径frontPath=/f# 信息发布时的URL后缀,可配置HTML后缀的页面进行缓存urlSuffix=.html# 分页大小,默认每页15条page.pageSize=15# 硕正组件是否使用Cache(一般开发阶段,关闭Cache)eCache=false# 设置通知间隔访问时间,单位毫秒.oa.notify.remind.interval=600002.3.框架参数配置# 设置SESSION超时时间,web.xml里设置无效,单位毫秒. session.sessionTimeout=120000session.sessionTimeoutClean=120000# 缓存设置ehcache.configFile=cache/ehcache-local.xml#ehcache.configFile=cache/ehcache-rmi.xml# 首页地址web.view.index=/a# 视图文件配置,前缀和后缀web.view.prefix=/WEB-INF/views/web.view.suffix=.jsp# 最大上传字节数 10M=10*1024*1024(B)=10485760web.maxUploadSize=10485760# 设置日志拦截器,拦击的URI,@RequestMapping 值web.logInterceptExcludeUri=/,/login,/sys/menu/tree,/sys/menu/treeData,/oa/oaNotify/self/countweb.logInterceptIncludeRequestMapping=save,delete,import,updateSort# 工作流配置activiti.isSynActivitiIndetity=falseactiviti.export.diagram.path=c:/activiti_diagram#activiti font (windows font: \u5B8B\u4F53 linux font: simsun)activiti.diagram.activityFontName=\u5B8B\u4F53belFontName=\u5B8B\u4F53activiti.form.server.url=http://127.0.0.1:8075/xxxx3.pom.xml3.1.修改项目名称artifactId:项目名称version:版本修改完成后运行eclipse.bat重新生成项目文件。
JeeSite企业信息管理系统基础框架目录1.JEESITE概述 (4)1.1.简介 (4)1.2.为何选择 (4)1.3.相关技术 (5)1.4.安全考虑 (6)2.管理功能演示 (7)2.1.管理登录 (7)2.1.1.登录界面 (7)2.1.2.主题切换 (8)2.2.总体介绍 (11)2.2.1.客户端验证 (11)2.2.2.提交结果信息 (11)2.3.控制面板 (12)2.3.1.个人资料 (12)2.3.2.修改密码 (12)2.4.机构用户 (12)2.4.1.用户管理 (12)2.4.2.机构管理 (14)2.4.3.区域管理 (16)2.5.系统设置 (18)2.5.1.菜单管理 (18)2.5.2.角色管理 (19)2.5.3.字典管理 (21)2.6.内容管理 (22)2.6.1.内容管理 (22)2.6.2.评论管理 (27)2.6.3.栏目管理 (28)2.6.4.站点管理 (29)2.6.5.公共留言 (31)2.6.6.文件管理 (32)2.6.7.网站展示(基础主题) (34)3.功能组件 (40)3.1.U TILS (41)3.2.T AGLIB (42)3.3.EL F UNCTION (42)3.4.J AVA S CRIPT (42)4.快速体验 (42)4.1.在线体验 (42)4.2.本地体验 (43)5.交流、反馈、参与贡献 (43)6.未来开发计划 (43)1.JeeSite概述1.1.简介JeeSite是一个开源的企业信息管理系统基础框架。
主要定位于“企业信息管理”领域,可用作企业信息管理类系统、网站后台管理类系统等。
JeeSite是非常强调开发的高效性、健壮性和安全性的。
JeeSite是轻量级的,简单易学,本框架以Spring Framework为核心、Spring MVC(相比Struts2更容易上手、更易用)作为模型视图控制器、Spring Data JPA + Hibernate作为数据库操作层,此组合是Java界业内最经典、最优的搭配组合进行封装。
JEESITE快速开发平台(⼆)环境搭建⼀、下载源码下载地址:这⾥使⽤Mybatis版本的进⾏演⽰。
下载之后解压:他提供的⼀些⽂档⼆、环境搭建下⾯是官⽹提供的演⽰⽅法:快速体验1.具备运⾏环境:JDK1.6+、Maven3.0+、MySql5+或Oracle10g+。
2.修改src\main\resources\jeesite.properties⽂件中的数据库设置参数。
3.根据修改参数创建对应MySql或Oracle数据库⽤户和参数。
可以⼿动新建jeesite数据库,也可以通过init-db.bat脚本⾃动创建导⼊db⽬录下的sql⽂件这⾥使⽤SQLyog客户端,选中数据库右键--->导⼊---->从SQL存储⽂件导⼊数据库然后点击执⾏,执⾏完毕后4.运⾏bin\init-db.bat脚本,即可导⼊表结构及演⽰数据(linux操作系统:在控制台中切换⾄项⽬根⽬录,运⾏命令:mvn antrun:run -Pinit-db)在bin⽬录⾥并没有发现有init-db.bat脚本⽽是在db⽬录⾥注意: 在执⾏init-db.bat之前要先创建jeesite数据库,否则会报错:创建jeesite数据库之后,执⾏init-db.bat创建成功5.运⾏bin\run-tomcat7.bat或bin\run-jetty.bat,启动Web服务器(第⼀次运⾏,需要下载依赖jar包,请耐⼼等待)。
报错: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)修改jeesite.properties中的jdbc.url把localhost改为127.0.0.1然后从新运⾏run-tomcat7.bat6.输⼊最⾼管理员账号,⽤户名:thinkgem 密码:admin点击登录这就是jeesite默认的页⾯。
Jeesite流程1.Jeesite流程2.关于shiro授权3.Orm对象关系映射4.Mybatis的总体流程是一.Jeesite流程(主要是jsp,entity,dao,dao.xml,service,controller)(1).MyBatisRegisterDao.xml(2).MyBatisRegisterDao.java(3).Register.java实体(4).RegisterService.java(5).RegisterController.java(6).Register.jsp二.关于shiro授权1.Shiro授权的三要素是:权限,角色,用户2.三要素的关联:因为通过声明权限我们仅仅能了解这个权限在项目中能做什么,而不能确定谁有这个权限,所以,我们需要在应用程序中对用户和权限建立关系。
3.在项目上: 我们一般将权限分配给某个角色,然后将这个角色分配给一个或多个用户,例如:修改的权限是只有管理员才拥护的,那么,在这个时候,管理员就相当于被设于拥有修改权限的用户,4.shiro支持三种授权方式:编码实现,注解实现,jsp Tag实现三.Orm对象关系映射1.用于实现面向对象编程语言里不同类型系统的数据之间的转换2.在jeesite框架中用到的就是mybatis四.Mybatis的总体流程是1.加载配置并初始化,其触发条件是加载配置文件将SQL 的配置信息加载成为一个个MappingStatement对象(包括传入参数映射配置,执行的sql语句,结果映射配置) 存储在内存中2.接收调用请求,其触发条件是调用mybatis中的api,将请求传递给下层的请求处理层处理3.处理操作请求,api接口层传递传递请求过来,传入sql的id和传入参数,根据sql的id查找对应的MappingStatement对象,和传入参数对象解析MappingStatement对象,得到最终要执行的sql和执行传入参数,后获取数据库连接,根据最终得到的sql语句和传入参数到数据库执行,得到最终的处理结果,最后释放资源4.将最终处理结果返回。
第1章介绍与安装作者:ThinkGem更新日期:2014-4-81.平台简介JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台。
JeeSite本身是以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层,Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流引擎。
JeeSite主要定位于企业信息化领域,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件、数据权限组件、数据字典组件、核心工具组件、视图操作组件、工作流组件、代码生成等。
前端界面风格采用了结构简单、性能优良、页面美观大气的Twitter Bootstrap页面展示框架。
采用分层设计、双重验证、提交数据安全编码、密码加密、访问验证、数据权限验证。
使用Maven做项目管理,提高项目的易开发性、扩展性。
JeeSite目前包括以下三大模块,系统管理(SYS)模块、内容管理(CMS)模块、在线办公(OA)模块、代码生成(GEN)模块。
系统管理模块,包括企业组织架构(用户管理、机构管理、区域管理)、菜单管理、角色权限管理、字典管理等功能;内容管理模块,包括内容管理(文章、链接),栏目管理、站点管理、公共留言、文件管理、前端网站展示等功能;在线办公模块,提供简单的请假流程实例。
JeeSite 提供了常用工具进行封装,包括日志工具、缓存工具、服务器端验证、数据字典、当前组织机构数据(用户、机构、区域)以及其它常用小工具等。
另外还提供一个强大的在线代码生成工具,此工具提供简单的单表、一对多、树结构功能的生成,如果对外观要求不是很高,生成的功能就可以用了。
如果你使用了JeeSite基础框架,就可以很高效的快速开发出,优秀的信息管理系统。
2.内置功能1.用户管理:用户是系统操作者,该功能主要完成系统用户配置。
jeesite elastisearch 全文检索实践JeeSite Elasticsearch 全文检索实践在当今信息爆炸的时代,有效地检索和管理大量的数据变得尤为重要。
而对于开发者和系统管理员来说,如何构建一个高效的全文检索系统也是一项具有挑战性的任务。
JeeSite作为一个成熟的Java开发框架,为我们提供了一个简单且强大的解决方案,将Elasticsearch与JeeSite框架相结合,可以快速实现高效的全文检索。
一、什么是Elasticsearch?Elasticsearch是一个开源的分布式全文检索引擎,它构建在Apache Lucene之上,并实现了全文检索和分析引擎的分布式特性。
它具有快速、可扩展和易于使用的特点,并支持复杂的查询和分析。
Elasticsearch采用倒排索引的方式存储数据,并通过分片和副本的方式实现高可用性和容错性。
二、为什么选择Elasticsearch?相比于传统的关系数据库,Elasticsearch具有以下几点优势:1. 高性能:Elasticsearch利用倒排索引和分布式架构,可以快速地进行全文检索和复杂查询。
它还支持实时索引和数据更新,所以非常适合实时应用。
2. 可扩展性:Elasticsearch可以轻松地扩展到数百台服务器,通过分片和副本的方式实现负载均衡和容错性。
3. 强大的查询功能:Elasticsearch支持全文搜索、过滤、聚合等强大的查询功能,可以满足各种复杂的检索需求。
4. 多语言支持:Elasticsearch支持多种语言的分析和处理,可以处理各种语言的全文搜索和分析需求。
三、如何在JeeSite中使用Elasticsearch?在JeeSite中使用Elasticsearch,需要进行以下几个步骤:1. 安装Elasticsearch:首先需要将Elasticsearch安装在服务器上,并启动Elasticsearch服务。
2. 配置JeeSite:在JeeSite的配置文件中,需要添加Elasticsearch相关的配置,包括Elasticsearch服务器地址、索引名称等。
jeesite 说明文档-6.工作流的应用实例供参习4第6章工作流的应用实例作者:ThinkGem更新日期:2014-01-03 1新建流程模型在线办公→流程管理→模型管理→新建模型点击“提交”后会立即跳转到“流程在线设计器”页面,请看下一章节2在线流程设计器在线办公→流程管理→模型管理→模型管理→编辑注意:此功能不支持IE,请用谷歌或火狐浏览器编辑。
2.1设置流程属性●名称:流程定义名称●描述:流程定义描述●流程标识:流程定义KEY,对应procDefKey,用来标识一个流程2.2拖拽形状元素●Start event:开始事件●End entit:结束事件●User task:用户任务活动●Service task:服务任务活动●Exclusive gateway:排它网关通道,只能有一条分支执行,如if else●Parallel gateway:并行网关通道,所有分支一块执行●Enclusive gateway:包含网关通道,执行符合条件的分支参考:/docs/activiti/#bpmnConstructs2.3流程发起人流程变量在开始节点的属性中设置“流程发起人”变量名:如:apply这时,任务的参与者可设置${apply},来指定谁发起谁执行如发起人发起流程,被驳回是,驳回到发起人,可使用方法。
2.4挂接表单地址●全局表单:新建流程时或活动元素上未设置表单标识时调用的表单,位于开始事件属性中“表单标识”字段,指定表单访问地址。
●活动表单:当前步骤使用的表单,使用活动节点属性“表单标识”字段。
2.5设置参与者在活动节点属性中找到“参与者”属性,点击“…”弹出如下窗口●assignee:任务执行人,设置系统中的“登录名”(loginName)。
●candidateUsers:任务执行人,多个用逗号“,”隔开。
●candidateGroups:任务执行组,多个用逗号“,”隔开,设置系统中的“角色英文名(enname)”。
第5章硕正WEB组件的应用作者:ThinkGem更新日期:2014-01-03 1.简介硕正描述格式采用XML,数据格式采用JSON。
原因如下:描述采用XML 可表现比较复杂的结构,易于官方文档查找好对应;数据采用JSON格式原因有三点,一是JSON官方有很好的支持;二是JSON格式比较简单并解析速度快,三是JSON相比XML要小,节省流量。
后台采用注解方式配置,自动返回描述XML字符串和数据JSON字符串。
●描述文件XML注解配置请参考本文第2章;●数据格式JSON注解配置请参考Jackson注解,官方网站2.树列表注解实例代码见TestController.java,testList.jsp文件,演示页面如下:2.1.调用实例@SupTreeList(properties=@SupProperties(headerFontIndex="2", curSelBgColor="#ccddcc", displayMask="backColor=if(name='管理员', '#ff0000', transparent)",expresses={@SupExpress(text="total=round(price*num, 2)"),@SupExpress(text="price=round(total/num, 4)")}),fonts={@SupFont(faceName="宋体", weight="400"),@SupFont(faceName="楷体", weight="700", height="-12"),@SupFont(faceName="楷体", weight="400", height="-12")}, groups={@SupGroup(id="date", name="日期", headerFontIndex="1", sort=50),@SupGroup(id="date2", name="日期2", headerFontIndex="2", sort=60, parentId="date"),@SupGroup(id="date3", name="日期3", headerFontIndex="2", sort=70, parentId="date")})实体配置,参考类: Test.java2.2.@SupTreeList硕正总体注解硕正主要注解,只可以定义到类之上。
一、场景介绍Jeesite使用的是activiti工作流,本次我们主要用于实现简单的审批流程:1、审批环节和修改环节执行前需要动态分配调用对象2、流程变量中需要记录事项id,方便整个流程获取二、模型建立<?xml version="1.0" encoding="UTF-8"?><definitions xmlns="/spec/BPMN/20100524/MODEL" xmlns:xsi="/2001/XMLSchema-instance" xmlns:xsd="/2001/XMLSchema" xmlns:activiti="/bpmn" xmlns:bpmndi="/spec/BPMN/20100524/DI" xmlns:omgdc="/spec/DD/20100524/DC" xmlns:omgdi="/spec/DD/20100524/DI" typeLanguage="/2001/XMLSchema" expressionLanguage="/1999/XPath" targetNamespace="/processdef"><process id="approve_process" name="业务受理" isExecutable="true"><startEvent id="start" name="开始" activiti:formKey="/ywsl/auditProcess/form"></startEvent><userTask id="audit" name="审批" activiti:formKey="/ywsl/auditProcess/audit"><extensionElements><activiti:taskListener event="create" delegateExpression="${candidateListener}"></activiti:taskListener></extensionElements></userTask><sequenceFlow id="sid-8955ECAD-719A-47C1-A41F-A32EA610C5DF" sourceRef="start" targetRef="audit"></sequenceFlow> <exclusiveGateway id="sid"></exclusiveGateway><sequenceFlow id="sid-D0995983-1EB6-4648-AB81-288CB62D94DE" sourceRef="audit" targetRef="sid"></sequenceFlow><endEvent id="sid-6C375AA3-07B6-4F46-9816-BFAA99CE9BDC" name="结束"></endEvent><userTask id="update" name="修改"><extensionElements><activiti:taskListener event="create" delegateExpression="${assigneeListener}"></activiti:taskListener></extensionElements></userTask><sequenceFlow id="sid-2461127D-B47F-4361-A472-D8C565E2DB15" sourceRef="update" targetRef="audit"></sequenceFlow> <sequenceFlow id="pass" name="通过" sourceRef="sid" targetRef="sid-6C375AA3-07B6-4F46-9816-BFAA99CE9BDC"><conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass == 1}]]></conditionExpression></sequenceFlow><sequenceFlow id="reject" name="驳回" sourceRef="sid" targetRef="update"><conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass == 0}]]></conditionExpression></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_approve_process"><bpmndi:BPMNPlane bpmnElement="approve_process" id="BPMNPlane_approve_process"><bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start"><omgdc:Bounds height="30.0" width="30.0" x="162.3333282470703" y="155.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="audit" id="BPMNShape_audit"><omgdc:Bounds height="80.0" width="100.0" x="237.3333282470703" y="130.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid" id="BPMNShape_sid"><omgdc:Bounds height="40.0" width="40.0" x="420.0" y="150.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-6C375AA3-07B6-4F46-9816-BFAA99CE9BDC" id="BPMNShape_sid-6C375AA3-07B6-4F46-9816-BFAA99CE9BDC"><omgdc:Bounds height="28.0" width="28.0" x="525.0" y="156.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="update" id="BPMNShape_update"><omgdc:Bounds height="80.0" width="100.0" x="390.0" y="15.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="reject" id="BPMNEdge_reject"><omgdi:waypoint x="440.4130434782609" y="150.41304347826087"></omgdi:waypoint><omgdi:waypoint x="440.17316017316017" y="95.0"></omgdi:waypoint><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="440.4130434782609" y="150.41304347826087"></omgdc:Bounds></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-8955ECAD-719A-47C1-A41F-A32EA610C5DF" id="BPMNEdge_sid-8955ECAD-719A-47C1-A41F-A32EA610C5DF"><omgdi:waypoint x="192.3333282470703" y="170.0"></omgdi:waypoint><omgdi:waypoint x="237.3333282470703" y="170.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-2461127D-B47F-4361-A472-D8C565E2DB15" id="BPMNEdge_sid-2461127D-B47F-4361-A472-D8C565E2DB15"><omgdi:waypoint x="390.0" y="92.66375420370463"></omgdi:waypoint><omgdi:waypoint x="337.3333282470703" y="132.33624579629537"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-D0995983-1EB6-4648-AB81-288CB62D94DE" id="BPMNEdge_sid-D0995983-1EB6-4648-AB81-288CB62D94DE"><omgdi:waypoint x="337.3333282470703" y="170.16322088685408"></omgdi:waypoint><omgdi:waypoint x="420.43449781877615" y="170.43449781877615"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="pass" id="BPMNEdge_pass"><omgdi:waypoint x="459.5969387755102" y="170.4030612244898"></omgdi:waypoint><omgdi:waypoint x="525.0001803670469" y="170.07106507427895"></omgdi:waypoint><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="459.5969387755102" y="170.4030612244898"></omgdc:Bounds> </bpmndi:BPMNLabel></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram></definitions>说明:1、审批和修改任务节点增加事前监听,用于动态创建接收用户2、开始节点和审批节点增加对应需要处理的表单三、流程编写过程。
业务逻辑层、数据权限、数据事务处理、通用基类 - JeeSite 4.x•引言•数据权限–角色数据范围–控制业务范围–快速开始•第一步•第二步•第三步–扩展数据权限–附:API•数据库事务–注解属性–事务传播行为–事务隔离级别•基类及接口的继承关系–QueryService 查询抽象基类–CrudService 增删改抽象基类–TreeService 树结构抽象基类•其它使用技巧–分页逻辑说明–MAP参数分页–覆写内置Service引言对于业务逻辑层的开发重复代码很多,尽管有代码生成器,但从代码量总的来说还是比较多,所以就有了以下抽象类及工具,对一些常用操作进行封装。
对通用新增、删除、编辑、查询,代码操作进行封装简化。
你只需要写你的业务逻辑代码就可以了。
对特有树状结构特有字段如(所有父级编码、所有排序号编码、是否是叶子节点、当前节点层次)进行更新,比如,通过所有父级编码可快速查询到所有子级的数据;通过所有排序号,可快速对整个树结构进行排序;通过是否叶子节点快速得知是否有下级;根据当前层次快速知道当前节点在树中的级别。
对通用数据权限进行简化封装,将颗粒度降到人员身上,支持人员与数据,角色与数据权限定制(角色上的数据权限与人员身上的数据权限为或者关系)。
数据权限不仅仅支持公司、部门、角色,还可以通过配置支持你的业务字段数据信息过滤,如订单的区域、内容管理的栏目、故障单类型等等。
对事务处理使用Spring事务@Transactional注解,进行方法级别的事务控制,不用单独处理事务及回滚。
如配置传播行为,进行事务继承,子事务,事务回滚行为等,配置隔离级别读取未提交的数据等。
数据权限相对于旧版本,本次对数据权限这块进行了全面的升级,让数据权限颗粒度细化到人员身上。
支持人员与权限和角色与权限:主要是这两张表:js_sys_role_data_scope、js_sys_user_data_scope权限表中的关键字段的含义,如下:•控制类型:Office:部门;Company:公司、Role:角色;•控制数据:被控制数据权限的数据主键编号,业务表的主键编号;•控制权限:1:拥有的权限(DataScope.CTRL_PERMI_HAVE);2:管理的权限(DataScope.CTRL_PERMI_MANAGE)。
第1章介绍与安装作者:ThinkGem更新日期:2014-4-81.平台简介JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台。
JeeSite本身是以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层,Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流引擎。
JeeSite主要定位于企业信息化领域,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件、数据权限组件、数据字典组件、核心工具组件、视图操作组件、工作流组件、代码生成等。
前端界面风格采用了结构简单、性能优良、页面美观大气的Twitter Bootstrap页面展示框架。
采用分层设计、双重验证、提交数据安全编码、密码加密、访问验证、数据权限验证。
使用Maven做项目管理,提高项目的易开发性、扩展性。
JeeSite目前包括以下三大模块,系统管理(SYS)模块、内容管理(CMS)模块、在线办公(OA)模块、代码生成(GEN)模块。
系统管理模块,包括企业组织架构(用户管理、机构管理、区域管理)、菜单管理、角色权限管理、字典管理等功能;内容管理模块,包括内容管理(文章、链接),栏目管理、站点管理、公共留言、文件管理、前端网站展示等功能;在线办公模块,提供简单的请假流程实例。
JeeSite 提供了常用工具进行封装,包括日志工具、缓存工具、服务器端验证、数据字典、当前组织机构数据(用户、机构、区域)以及其它常用小工具等。
另外还提供一个强大的在线代码生成工具,此工具提供简单的单表、一对多、树结构功能的生成,如果对外观要求不是很高,生成的功能就可以用了。
如果你使用了JeeSite基础框架,就可以很高效的快速开发出,优秀的信息管理系统。
2.内置功能1.用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2.机构管理:配置系统组织机构(公司、部门、小组),树结构展现,可随意调整上下级。
3.区域管理:系统城市区域模型,如:国家、省市、地市、区县的维护。
4.菜单管理:配置系统菜单,操作权限,按钮权限标识等。
5.角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
6.字典管理:对系统中经常使用的一些较为固定的数据进行维护,如:是否、男女、类别、级别等。
7.操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
8.连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
9.工作流引擎:实现业务工单流转、在线流程设计器。
3.开发工具1.Eclipse IDE:采用Maven项目管理,模块化。
2.在线演示:演示系统常用组件的使用代码,内嵌地图案例等。
3.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查):单表、一对多、树结构。
生成后的代码如果不需要注意美观程度,生成后即可用。
4.设计思想1、分层设计:(数据访问层,业务逻辑层,展示层)层次清楚,低耦合,各层必须通过接口才能接入并进行参数校验(如:在展示层不可直接操作数据库),保证数据操作的安全。
2、双重验证:用户表单提交双验证:包括服务器端验证及客户端验证,防止用户通过浏览器恶意修改(如不可写文本域、隐藏变量篡改、上传非法文件等)而跳过客户端验证操作数据库。
3、安全编码:用户表单提交所有数据,在服务器端都进行安全编码,防止用户提交非法脚本及SQL注入获取敏感数据等,确保数据安全。
4、密码加密:登录用户密码进行SHA1散列加密,此加密方法是不可逆的。
保证密文泄露后的安全问题。
5、访问验证:系统对所有管理端链接都进行用户身份权限验证,防止用户直接通过URL进行未授权页面。
6、数据验证:对指定数据集权限进行过滤,七种数据权限可供选择(所有权限,公司及子公司,本公司,部门及子部门,本部门,本人数据,跨机构数据)7、快速编码:提供基本功能模块的源代码生成器,提高开发效率及质量。
5.技术选型1、后端* 核心框架:Spring Framework 4.0* 安全框架:Apache Shiro 1.2* 视图框架:Spring MVC 4.0* 服务端验证:Hibernate Validator 5.1* 布局框架:SiteMesh 2.4* 工作流引擎:Activiti 5.15* 任务调度:Spring Task 4.0* 持久层框架:MyBatis 3.2* 数据库连接池:Alibaba Druid 1.0* 缓存框架:Ehcache 2.6、Redis* 日志管理:SLF4J 1.7、Log4j* 工具类:Apache Commons、Jackson 2.2、Xstream 1.4、Dozer 5.3、POI3.92、前端* JS框架:JQuery 1.9。
* CSS框架:Twitter Bootstrap 2.3.1。
* 客户端验证:JQuery Validation Plugin 1.11。
* 富文本:CKEcitor* 文件管理:CKFinder* 动态页签:Jerichotab* 手机端框架:Jingle* 数据表格:jqGrid* 对话框:jQuery jBox* 下拉选择框:jQuery Select2* 树结构控件:jQuery zTree* 日期控件:My97DatePicker4、平台* 服务器中间件:在Java EE 5规范(Servlet 2.5、JSP 2.1)下开发,支持应用服务器中间件有Tomcat 6、Jboss 7、WebLogic 10、WebSphere 8。
* 数据库支持:目前仅提供Oracle数据库的支持,但不限于数据库,平台留有其它数据库支持接口,可方便更改为其它数据库,如:SqlServer 2008、MySql 5.5、H2等* 开发环境:Java EE、Eclipse、Maven、Git6.必会基础知识1.软件工程基础、Java语言基础、JSP内置对象、EL表达式2.Spring Framework:类的依赖、自动注入、事务处理3.Spring MVC:URL映射、参数传递4.Apache Shiro:安全拦截方式,应用方法,控制按钮5.SiteMesh:布局框架的用法6.JSP标准标签库(JSTL):if、choose、forEach、set7.Spring MVC表单标签库:form、input、textarea、select、checkbox8.文件存放规范,命名规范。
7.学习索引1.Spring Framework :∙跟我学Spring32.Spring MVC∙跟开涛学Spring MVC∙JSP语法、Spring Form、JSTL、EL∙Bean Validation3.Apache Shiro∙官方文档∙快速入门4.SiteMesh 2.4∙官方文档∙入门实例、标签使用、装饰文件5.Bootstrap 2.3∙Bootstrap官网∙Bootstrap中文网6.jQuery∙jQuery API:官方文档中文文档∙jQuery Validation:官方文档使用范例∙jQuery zTree: 官方文档∙jQruey jBox:官方文档7.Activiti∙官方网站∙中文文档∙咖啡兔Activiti8.Ehcache∙官方文档∙EhCache分布式缓存9.其它资料∙Alibaba Druid∙FreeMarker∙8.安装部署1.运行Maven目录下的settings.bat文件,用来设置maven仓库路径,并按提示操作(设置PATH系统变量、配置Eclipse)。
2.执行jeesite/bin/eclipse.bat 生成工程文件并下载jar依赖包(如果需要修改默认项目名,请打开pom.xml修改第7行artifactId,然后再执行eclipse.bat文件)。
3.将jeesite 工程导入到eclipse,选中工程,按F5刷新。
4.设置数据源:src/main/resources/jeesite.properties5.导入数据表并初始化数据:运行db/init-db.bat文件。
(导入时如果出现“drop”失败提示信息,请忽略。
)6.新建Server(Tomcat),注意选择以下两个选项:7.配置server.xml的Connector项,增加URIEncoding="UTF-8"8.部署到Tomcat,设置Auto Reload为Disabled。
9.访问工程:http://127.0.0.1:8080/ jeesite 用户名:thinkgem 密码:admin 9.常见问题1.'mvn' 不是内部或外部命令,原因如下a)PATH未配置或配置了多个不一致的Maven地址,如用户/系统变量。
b)M2_HOME系统/用户变量地址不正确,可删除M2_HOME变量。
c)检查mvn运行是否正常,cmd执行:mvn -v2.运行eclipse.bat 找不到文件路径或乱码:一般原因是路径中包含空格或中文。
3.导入到eclipse下找不到jar包:maven未配置,查看m2_repo仓库路径是否正确。
4.运行init-db.bat提示ORA-xxx:根据错误码排除错误,一般是数据库url不对,用户名或密码错误。
5.部署时出现某某被锁定,一般原因:Tomcat服务中的两个选项未选中。
6.字典列表,添加键值,出现乱码:server.xml未配置url编码为utf-8。