springmvc+activiti 完美整合- 流程線上設計+程式碼生成器+UI快速開發庫,提高一半的開發效率
阿新 • • 發佈:2018-12-25
JEECG(J2EE Code Generation) 是一款基於程式碼生成器的智慧開發平臺,採用程式碼生成+手工MERGE半智慧開發模式, 可以幫助解決Java專案60%的重複工作,讓開發更多關注業務邏輯。既能快速提高開發效率,幫助公司節省人力成本,同時又不失擴充套件性和靈活性。
JEECG宗旨是:簡單功能由程式碼生成器生成使用; 複雜業務採用表單自定義,業務流程使用工作流來實現、擴展出任務介面,供開發編寫業務邏輯。 實現了流程任務節點和任務介面的靈活配置,既保證了公司流程的保密行,又減少了開發人員的工作量。
JEECG V3.0版本推翻原有SSH2架構,採用SpringMVC+Hibernate+UI快速開發庫 基礎架構,
- JEECG V3.0版本四大技術點: 1.程式碼生成器 2.UI快速開發庫 3.線上流程設計 4.系統日誌記錄
- 技術點一:程式碼生成器,支援多種資料模型,根據表生成對應的Entity,Service,Dao,Action,JSP等,增刪改查功能生成直接使用
- 技術點二:UI快速開發庫,針對WEB UI進行標準封裝,頁面統一採用UI標籤實現功能:資料datagrid,表單校驗,Popup,Tab等,實現JSP頁面零JS,開發維護非常高效
- 技術點三:線上流程定義,採用開源Activiti流程引擎,實現線上畫流程,自定義表單,表單掛接,業務流轉,流程監控,流程跟蹤,流程委託等
新版本特性:
- JEECG V3.0,經過了專業壓力測試,效能測試,保證後臺資料的準確性和頁面訪問速度
- 支援多種瀏覽器: IE, 火狐, Google 等瀏覽器訪問速度都很快
- 支援資料庫: Mysql,Oracle10g等
- 基礎許可權: 使用者,角色,選單許可權,按鈕許可權,資料許可權
- 智慧報表整合: 簡易的影象報表工具和Excel匯入匯出
- Web容器測試通過的有Jetty和Tomcat6
- 待推出功能:分散式部署,雲端計算,移動平臺開發,規則引擎,程式碼生成器(eclipse外掛)
- 要求JDK1.6+
交流群:106259349, 106838471, 289782002
郵箱:[email protected]
專案演示:
UI快速開發庫演示
[1].Datagrid列表頁面程式碼
Html程式碼- <%@ page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
- <%@include file="/context/mytags.jsp"%>
- <divclass="easyui-layout"fit="true">
- <divregion="center"style="padding:1px;">
- <t:dategridname="jeecgDemoList"title="開發DEMO列表"actionUrl="jeecgDemoController.do?datagrid"idField="id"fit="true">
- <t:dgColtitle="編號"field="id"hidden="false"></t:dgCol>
- <t:dgColtitle="使用者名稱"field="userName"query="true"></t:dgCol>
- <t:dgColtitle="電話號碼"sortable="false"field="mobilePhone"width="20"query="true"></t:dgCol>
- <t:dgColtitle="辦公電話"field="officePhone"></t:dgCol>
- <t:dgColtitle="郵箱"field="email"></t:dgCol>
- <t:dgColtitle="年齡"sortable="true"field="age"></t:dgCol>
- <t:dgColtitle="工資"field="sex"></t:dgCol>
- <t:dgColtitle="性別"field="salary"></t:dgCol>
- <t:dgColtitle="生日"field="birthday"formatter="yyyy/MM/dd"></t:dgCol>
- <t:dgColtitle="建立日期"field="createTime"formatter="yyyy-MM-dd hh:mm:ss"></t:dgCol>
- <t:dgColtitle="操作"field="opt"width="100"></t:dgCol>
- <t:dgFunOptfunname="szqm(id)"title="稽核"/>
- <t:dgDelOpttitle="刪除"url="jeecgDemoController.do?del&id={id}"/>
- <t:dgToolBartitle="錄入"icon="icon-add"></t:dgToolBar>
- <t:dgToolBartitle="編輯"icon="icon-edit"></t:dgToolBar>
- </t:dategrid>
- </div>
- </div>
- <scripttype="text/javascript">
- function szqm(id) {
- createwindow('稽核', 'jeecgDemoController.do?doCheck&id=' + id);
- }
- </script>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/context/mytags.jsp"%>
<div class="easyui-layout" fit="true">
<div region="center" style="padding:1px;">
<t:dategrid name="jeecgDemoList" title="開發DEMO列表" actionUrl="jeecgDemoController.do?datagrid" idField="id" fit="true">
<t:dgCol title="編號" field="id" hidden="false"></t:dgCol>
<t:dgCol title="使用者名稱" field="userName" query="true"></t:dgCol>
<t:dgCol title="電話號碼" sortable="false" field="mobilePhone" width="20" query="true"></t:dgCol>
<t:dgCol title="辦公電話" field="officePhone"></t:dgCol>
<t:dgCol title="郵箱" field="email"></t:dgCol>
<t:dgCol title="年齡" sortable="true" field="age"></t:dgCol>
<t:dgCol title="工資" field="sex"></t:dgCol>
<t:dgCol title="性別" field="salary"></t:dgCol>
<t:dgCol title="生日" field="birthday" formatter="yyyy/MM/dd"></t:dgCol>
<t:dgCol title="建立日期" field="createTime" formatter="yyyy-MM-dd hh:mm:ss"></t:dgCol>
<t:dgCol title="操作" field="opt" width="100"></t:dgCol>
<t:dgFunOpt funname="szqm(id)" title="稽核" />
<t:dgDelOpt title="刪除" url="jeecgDemoController.do?del&id={id}" />
<t:dgToolBar title="錄入" icon="icon-add"></t:dgToolBar>
<t:dgToolBar title="編輯" icon="icon-edit"></t:dgToolBar>
</t:dategrid>
</div>
</div>
<script type="text/javascript">
function szqm(id) {
createwindow('稽核', 'jeecgDemoController.do?doCheck&id=' + id);
}
</script>
[2],Form表單頁面程式碼
Java程式碼- <%@ page language="java"import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- <%@include file="/context/mytags.jsp"%>
- <!DOCTYPE html>
- <html>
- <head>
- <title>開發DEMO</title>
- <t:base type="jquery,easyui,tools"></t:base>
- </head>
- <body style="overflow-y: hidden" scroll="no">
- <t:formvalid formid="formobj" dialog="true" usePlugin="password" layout="table" action="jeecgDemoController.do?save">
- <input id="id" name="id" type="hidden" value="${jgDemo.id }">
- <table style="width: 600px;" cellpadding="0" cellspacing="1"class="formtable">
- <tr>
- <td align="right" width="15%" nowrap>
- <label class="Validform_label">
- 使用者名稱:
- </label>
- </td>
- <td class="value" width="85%">
- <c:if test="${jgDemo.id!=null }">
- ${jgDemo.userName }
- </c:if>
- <c:if test="${jgDemo.id==null }">
- <input id="userName"class="inputxt" name="userName"
- value="${jgDemo.userName }" datatype="s2-10">
- <span class="Validform_checktip">使用者名稱範圍在2~10位字元</span>
- </c:if>
- </td>
- </tr>
- <tr>
- <td align="right" nowrap>
- <label class="Validform_label">
- 手機號碼:
- </label>
- </td>
- <td class="value">
- <input class="inputxt" name="mobilePhone"
- value="${jgDemo.mobilePhone}" datatype="m" errormsg="手機號碼不正確!"
- ignore="ignore">
- <span class="Validform_checktip"></span>
- </td>
- </tr>
- <tr>
- <td align="right">
- <label class="Validform_label">
- 辦公電話:
- </label>
- </td>
- <td class="value">
- <input class="inputxt" name="officePhone"
- value="${jgDemo.officePhone}" datatype="n"
- errormsg="辦公室電話不正確!" ignore="ignore">
- <span class="Validform_checktip"></span>
- </td>
- </tr>
- <tr>
- <td align="right">
- <label class="Validform_label">
- 常用郵箱:
- </label>
- </td>
- <td class="value">
- <input class="inputxt" name="email" value="${jgDemo.email}"
- datatype="e" errormsg="郵箱格式不正確!" ignore="ignore">
- <span class="Validform_checktip"></span>
- </td>
- </tr>
- <tr>
- <td align="right">
- <label class="Validform_label">
- 年齡:
- </label>
- </td>
- <td class="value">
- <input class="inputxt" name="age" value="${jgDemo.age}"
- datatype="n" errormsg="年齡格式不正確!" ignore="ignore">
- <span class="Validform_checktip"></span>
- </td>
- </tr>
- <tr>
- <td align="right">
- <label class="Validform_label">
- 工資:
- </label>
- </td>
- <td class="value">
- <input class="inputxt" name="salary" value="${jgDemo.salary}"
- datatype="d" errormsg="工資格式不正確!" ignore="ignore">
- <span class="Validform_checktip"></span>
- </td>
- </tr>
- <tr>
- <td align="right">
- <label class="Validform_label">
- 生日:
- </label>
- </td>
- <td class="value">
- <input name="birthday"class="easyui-datebox"
- value="<fmt:formatDate value='${jgDemo.birthday }' type="date"/>"
- errormsg="生日格式不正確!" ignore="ignore">
- <span class="Validform_checktip"></span>
- </td>
- </tr>
- <tr>
- <td align="right">
- <label class="Validform_label">
- 建立日期:
- </label>
- </td>
- <td class="value">
- <input name="createTime"class="easyui-datetimebox"
- value="${jgDemo.createTime}"
- errormsg="日期格式不正確!" ignore="ignore">
- <span class="Validform_checktip"></span>
- </td>
- </tr>
- <tr>
- <td align="right">
- <label class="Validform_label">
- 性別:
- </label>
- </td>
- <td class="value">
- <t:comboBox url="jeecgDemoController.do?combox" name="sex" text="userName" id="id"></t:comboBox>
- <span class="Validform_checktip"></span>
- </td>
- </tr>
- <tr>
- <td align="right">
- <label class="Validform_label">
- 部門:
- </label>
- </td>
- <td class="value">
- <select id="depId" name="depId" datatype="*">
- <c:forEach items="${departList}" var="depart">
- <option value="${depart.id }" <c:if test="${depart.id==jgDemo.depId}">selected="selected"</c:if>>
- ${depart.departname}
- </option>
- </c:forEach>
- </select>
- <span class="Validform_checktip">請選擇部門</span>
- </td>
- </tr>
- </table>
- </t:formvalid>
- </body>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/context/mytags.jsp"%>
<!DOCTYPE html>
<html>
<head>
<title>開發DEMO</title>
<t:base type="jquery,easyui,tools"></t:base>
</head>
<body style="overflow-y: hidden" scroll="no">
<t:formvalid formid="formobj" dialog="true" usePlugin="password" layout="table" action="jeecgDemoController.do?save">
<input id="id" name="id" type="hidden" value="${jgDemo.id }">
<table style="width: 600px;" cellpadding="0" cellspacing="1" class="formtable">
<tr>
<td align="right" width="15%" nowrap>
<label class="Validform_label">
使用者名稱:
</label>
</td>
<td class="value" width="85%">
<c:if test="${jgDemo.id!=null }">
${jgDemo.userName }
</c:if>
<c:if test="${jgDemo.id==null }">
<input id="userName" class="inputxt" name="userName"
value="${jgDemo.userName }" datatype="s2-10">
<span class="Validform_checktip">使用者名稱範圍在2~10位字元</span>
</c:if>
</td>
</tr>
<tr>
<td align="right" nowrap>
<label class="Validform_label">
手機號碼:
</label>
</td>
<td class="value">
<input class="inputxt" name="mobilePhone"
value="${jgDemo.mobilePhone}" datatype="m" errormsg="手機號碼不正確!"
ignore="ignore">
<span class="Validform_checktip"></span>
</td>
</tr>
<tr>
<td align="right">
<label class="Validform_label">
辦公電話:
</label>
</td>
<td class="value">
<input class="inputxt" name="officePhone"
value="${jgDemo.officePhone}" datatype="n"
errormsg="辦公室電話不正確!" ignore="ignore">
<span class="Validform_checktip"></span>
</td>
</tr>
<tr>
<td align="right">
<label class="Validform_label">
常用郵箱:
</label>
</td>
<td class="value">
<input class="inputxt" name="email" value="${jgDemo.email}"
datatype="e" errormsg="郵箱格式不正確!" ignore="ignore">
<span class="Validform_checktip"></span>
</td>
</tr>
<tr>
<td align="right">
<label class="Validform_label">
年齡:
</label>
</td>
<td class="value">
<input class="inputxt" name="age" value="${jgDemo.age}"
datatype="n" errormsg="年齡格式不正確!" ignore="ignore">
<span class="Validform_checktip"></span>
</td>
</tr>
<tr>
<td align="right">
<label class="Validform_label">
工資:
</label>
</td>
<td class="value">
<input class="inputxt" name="salary" value="${jgDemo.salary}"
datatype="d" errormsg="工資格式不正確!" ignore="ignore">
<span class="Validform_checktip"></span>
</td>
</tr>
<tr>
<td align="right">
<label class="Validform_label">
生日:
</label>
</td>
<td class="value">
<input name="birthday" class="easyui-datebox"
value="<fmt:formatDate value='${jgDemo.birthday }' type="date"/>"
errormsg="生日格式不正確!" ignore="ignore">
<span class="Validform_checktip"></span>
</td>
</tr>
<tr>
<td align="right">
<label class="Validform_label">
建立日期:
</label>
</td>
<td class="value">
<input name="createTime" class="easyui-datetimebox"
value="${jgDemo.createTime}"
errormsg="日期格式不正確!" ignore="ignore">
<span class="Validform_checktip"></span>
</td>
</tr>
<tr>
<td align="right">
<label class="Validform_label">
性別:
</label>
</td>
<td class="value">
<t:comboBox url="jeecgDemoController.do?combox" name="sex" text="userName" id="id"></t:comboBox>
<span class="Validform_checktip"></span>
</td>
</tr>
<tr>
<td align="right">
<label class="Validform_label">
部門:
</label>
</td>
<td class="value">
<select id="depId" name="depId" datatype="*">
<c:forEach items="${departList}" var="depart">
<option value="${depart.id }" <c:if test="${depart.id==jgDemo.depId}">selected="selected"</c:if>>
${depart.departname}
</option>
</c:forEach>
</select>
<span class="Validform_checktip">請選擇部門</span>
</td>
</tr>
</table>
</t:formvalid>
</body>