BOS项目 第1天

项目12天安排:

1-2天:项目概述、搭建开发环境、主页设计、持久层和表现层设计

3-6天:项目业务开发(取派员、区域、分区、定区、业务受理)---整个项目分为基础设置、取派、中转、路由、报表

7-8天:权限控制、权限管理----apache shiro

9-11天:工作流开发----activiti

12天:总结

今天内容安排:

1、项目概述(背景、常见软件类型、软件开发流程(瀑布模型))

2、搭建开发(数据库、web项目、SVN管理项目)

3、主页设计(jQuery easyUI)

4、UML工具使用PowerDesigner

本项目属于宅急送公司二期改造项目

项目的团队人数20多个人,项目开发周期1年多(13个月),编码阶段4个月。

1.1 常见的软件类型

OA:办公自动化系统

CRM:客户关系管理系统

ERP:企业资源计划平台

CMS:content Mangement System

1.2 软件开发流程(瀑布模型)

0、可行性分析

1、需求调研分析----需求规格说明书

2、设计阶段(概要设计、详细设计)----数据库设计、原型设计

3、编码阶段(单元测试)

4、测试阶段(系统测试、白盒测试、黑盒测试)

5、上线和运维

敏捷开发

1.3开发环境

1.4技术选型

2. 搭建开发环境

2.1 数据库环境

第一步:创建一个数据库

第二步:创建一个数据库用户

第三步:为创建的用户授权

第四步:使用新创建的数据库用户登录MySQL系统

2.2 web项目环境

第一步:创建一个动态web项目

第二步:导入jar包(SSH、spring依赖、日志、数据库驱动)

第三步:配置web.xml(struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器)

第四步:创建项目目录结构

第五步:在config目录中提供struts2的配置文件

第六步:在config目录下提供spring的配置文件applicationContext.xml

<!-- 配置公共项 -->
<!-- 加载数据源配置文件 -->
<context:property-placeholder location="classpath:jdbcInfo.properties"/>
<!-- 配置数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="dirverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!-- 数据库方言配置 -->
<property name="hibernateproperties">
<props>
<!-- 数据类型 -->
<prop key="hibernate.dialect"> org.hibernate.dialect.MySQL5Dialect</prop>
<!-- 打印sql语句 -->
<prop key="hibernate.show_sql">true</prop>
<!-- 格式化sql语句 -->
<prop key="hibernate.format_sql">true</prop>
<!-- 自动创建|更新|验证表结构 -->
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<!-- 注入Hibernate的映射文件 -->
<property name="mappingDirectoryLocations">
<list>
<value>classpath:com/guo/bos/domain</value>
</list>
</property>
</bean>
<!-- 事务管理 -->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 用注解 要 组件扫描 -->
<context:component-scan base-package="com.guo.bos"></context:component-scan>
<!-- 引入注解解析器    Controller Service Repository  注入: Resource Autowrired -->
<context:annotation-config></context:annotation-config>
<!-- 事务注解 -->
<tx:annotation-driven/>

第七步:提供项目所需的资源文件

注意,web.xml中配置服务器内部转发经过struts2过滤器处理

2.3 使用svn管理项目代码

第一步:创建一个SVN仓库

第二步:修改SVN的配置文件

svnserve.conf:

passwd:

authz:

第三步:启动SVN服务,使用批处理文件

eclipse svn 插件安装:https://blog.csdn.net/zhanlv/article/details/76504414

第四步:将搭建的web项目共享到SVN仓库

3. 主页设计---jQuery EasyUI插件

jQuery EasyUI目录结构:

l 在jsp页面中引入easyUI相关的资源文件

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/js/easyui/themes/default/easyui.css">

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/js/easyui/themes/icon.css">

<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>

<script type="text/javascript" src="${pageContext.request.contextPath }/js/easyui/jquery.easyui.min.js"></script>

3.1 layout页面布局

这个布局容器,有五个区域:北、南、东、西和中心。 他中心地区面板是必需的,但是边缘地区面板是可选的。每一个边缘地区面板可以缩放的拖动其边境, 他们也可以通过点击其收缩触发.布局可以嵌套,从而用户可以建立复杂的布局,他想要的。

<body class="easyui-layout">

<!-- 使用div指定区域 -->

<div title="XX管理系统" data-options="region:'north'" style="height: 100px">北部区域</div>

<div title="系统菜单" data-options="region:'west'" style="width: 200px">西部区域</div>

<div data-options="region:'center'">中心区域</div>

<div data-options="region:'east'" style="width: 100px">东部区域</div>

<div data-options="region:'south'" style="height: 50px">南部区域</div>

</body>

3.2accordion折叠面板

!-- 折叠面板效果 -->

<div class="easyui-accordion" data-options="fit:true">

<!-- 每个子div是其中的一个面板 -->

<div title="面板一">棉衣一</div>

<div title="面板二">test2</div>

<div title="面板三">test3</div>

</div>

<!-- 选项卡面板效果 -->

<div class="easyui-tabs" data-options="fit:true">

<!-- 每个子div是其中的一个面板 -->

<div data-options="closable:true,iconCls:'icon-help'" title="面板一">棉衣一</div>

<div title="面板二">test2</div>

<div title="面板三">test3</div>

</div>

3.4 动态添加选项卡

<a class="easyui-linkbutton" onclick="doAdd();">百度</a>

<script type="text/javascript">

function doAdd(){

//动态添加一个选项卡面板

$("#tt").tabs("add",{

title:'这个可是动态的',

content:'<iframe frameborder="0" width="100%" height="100%" src="page_base_staff.action"></iframe>',

closable:true,

iconCls:'icon-search'

});

}

</script>

4. ztree树形插件---jQuery插件

l 在jsp页面中引入ztree相关的资源文件

<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>

<link rel="stylesheet" href="${pageContext.request.contextPath }/js/ztree/zTreeStyle.css" type="text/css">

<script type="text/javascript" src="${pageContext.request.contextPath }/js/ztree/jquery.ztree.all-3.5.js"></script>

4.1 使用标准json数据构造ztree

<!-- 展示树形菜单 :使用标准json数据构造-->

<ul id="ztree1" class="ztree"></ul>

<script type="text/javascript">

$(function(){

//当页面加载完成后,动态创建ztree菜单

var setting = {};//设置ztree相关的属性

//构造json数据

var zNodes = [

{name:'系统管理'},//每个json对象对应一个节点数据

{name:'用户管理',children:[

{name:'用户添加'},

{name:'用户修改'}

]},//每个json对象对应一个节点数据

{name:'权限管理'}//每个json对象对应一个节点数据

];

//创建ztree

$.fn.zTree.init($("#ztree1"),setting,zNodes);

});

</script>

4.2 使用简单json数据构造ztree(建议)

<!-- 展示树形菜单 :使用简单json数据构造-->

<ul id="ztree2" class="ztree"></ul>

<script type="text/javascript">

$(function(){

//当页面加载完成后,动态创建ztree菜单

var setting2 = {

data: {

simpleData: {

enable: true//启用简单json数据描述节点数据

}

}

};//设置ztree相关的属性

//构造json数据

var zNodes2 = [

{id:'1',pId:'0',name:'系统管理'},//每个json对象对应一个节点数据

{id:'2',pId:'0',name:'用户管理'},//每个json对象对应一个节点数据

{id:'21',pId:'2',name:'用户添加'},//每个json对象对应一个节点数据

{id:'22',pId:'2',name:'用户修改'},//每个json对象对应一个节点数据

{id:'3',pId:'0',name:'权限管理'}//每个json对象对应一个节点数据

];

//创建ztree

$.fn.zTree.init($("#ztree2"),setting2,zNodes2);

});

</script>

效果:

4.3 发送ajax请求获取菜单数据构造ztree

<ul id="ztree3" class="ztree"></ul>

<script type="text/javascript">

$(function(){

var setting3 = {

data : {

simpleData : {

enable : true

//启用简单json数据描述节点数据

}

}

};//设置ztree相关的属性

//发送ajax请求获取json数据构造ztree

var url = "${pageContext.request.contextPath}/json/menu.json";

$.post(url,{},function(data){

//创建ztree

$.fn.zTree.init($("#ztree3"), setting3, data);

},'json');

});

</script>

1.1 为ztree节点绑定事件

<ul id="ztree3" class="ztree"></ul>

<script type="text/javascript">

$(function(){

var setting3 = {

data : {

simpleData : {

enable : true

//启用简单json数据描述节点数据

}

},

callback: {//绑定事件

onClick: function(a,b,treeNode){

var page = treeNode.page;

if(page != undefined){//需要打开选项卡

//判断当前选项卡是否已经打开

var e = $("#tt").tabs("exists",treeNode.name);

if(e){

//已经打开

$("#tt").tabs("select",treeNode.name);

}else{

$("#tt")

.tabs(

"add",

{

title : treeNode.name,

content : '<iframe frameborder="0" width="100%" height="100%" src="'+page+'"></iframe>',

closable : true,

iconCls : 'icon-edit'

});

}

}

}

}

};//设置ztree相关的属性

//发送ajax请求获取json数据构造ztree

var url = "${pageContext.request.contextPath}/json/menu.json";

$.post(url,{},function(data){

//创建ztree

$.fn.zTree.init($("#ztree3"), setting3, data);

},'json');

});

</script>

bos开发日记一的更多相关文章

  1. 微信小程序开发日记——高仿知乎日报(中)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该教 ...

  2. 微信小程序开发日记——高仿知乎日报(上)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...

  3. 嵌入式Linux驱动开发日记

    嵌入式Linux驱动开发日记 主机硬件环境 开发机:虚拟机Ubuntu12.04 内存: 1G 硬盘:80GB 目标板硬件环境 CPU: SP5V210 (开发板:QT210) SDRAM: 512M ...

  4. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(四)

    全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...

  5. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(三)

    全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...

  6. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(二)

    全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...

  7. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(一)

    全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...

  8. k3 Bos开发百问百答

              K/3 BOS开发百问百答   (版本:V1.1)           K3产品市场部       目录 一.基础资料篇__ 1 [摘要]bos基础资料的显示问题_ 1 [摘要]单 ...

  9. LayIM.AspNetCore Middleware 开发日记(一)闲言碎语

    前言 前几天写博客的时候突然看见了历史上的今天.不禁感慨时光如梭,这系列博客后来被我标注了已经过时,但是还有很多小伙伴咨询我.既然过时就要更新,正好 .NET Core 也出来很久了,于是乎想到把La ...

随机推荐

  1. nginx导致的session丢失的解决方法

    nginx把同一用户的请求分发到了不同的服务器,如果不做处理,就会导致session丢失. 1.粘性IP: 在nginx配置文件中,增加配置, 对IP进行HASH后,散列到服务器. 这个实现最简单.但 ...

  2. Fcoin和Coinex,谁更值得投资?

    2018年是数字货币市场很熊的一年,大部分币种在这一年下跌超过了90%.但是这一年对于数字货币的发展也是不平凡的,可以说是至关重要的一年.通证经济商业模型在这一年萌芽,并茁壮成长,2018是通证经济元 ...

  3. tp 查询数据库时报错 A non well formed numeric value encountered

    在database.php中配置或修改 'datetime_format' => false,

  4. Bootstrap Multiselect

    Getting Started Link the Required Files First, the jQuery library needs to be included. Then Twitter ...

  5. Intellij IDEA 代码中类非全路径显示

  6. CF839D Winter is here

    题目分析 显然我们不可能直接计算每一个子序列的贡献,而应该计算对于每一个gcd对答案的贡献. 考虑容斥.按照套路: 设\(q(i)\)表示序列\(gcd\)为\(i\)的倍数的序列长度和. 设\(g( ...

  7. 【转】2013 PHP技术峰会《Bug Free的PHP开发实践分享》摘录

    要想代码写的好,前提配置做的好 error_reporting  =  E_ALL | E_STRICT display_errors = 测试机设置为 On,生产机设置为 Off display_s ...

  8. BZOJ2346:[Baltic 2011]Lamp(最短路)

    Description 2255是一个傻X,他连自己家灯不亮了都不知道. 某天TZ大神路过他家,发现了这一情况, 于是TZ开始行侠仗义了. TZ发现是电路板的问题, 他打开了电路板,发现线路根本没有连 ...

  9. js 实现加入收藏/加入首页功能

    加入收藏夹实现: html代码如下: <a href="javascript:;" onclick="AddFavorite(window.location.hre ...

  10. mac 删除自带 ABC 输入法的方法

    首先需要关闭 mac 系统的 SIP ,不然删不掉,不会关的可以查看我的另一篇文章:mac 关闭系统完整性保护 SIP(System Integrity Protection)的方法 . 关闭 SIP ...