版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 级别:秘密文档编号:项目编号_年份_文档类型_文档序号sshi注解框架操作手册版本:v1.0湖南省赛宝软件服务有限公司all right reserved (c) 2010-2011xxxxxxxxxx系统-操作手册 版本:v1.0目录更新历史1前言2第一章 软件的安装与常用配置31.1、软件安装环境要求31.1.1、软件环境31.1.2、硬件环境31.2、软件的安装指导31.2.1、服务器端安装31.2.2、客户端安装31.3、数据库初始化31.3.1、数据库管理系统的安装31.3.2、数据库安装及数据导入31.4、用户权限设置(软件授权与许可)31.5、软件使用特点及惯例3第二章 技术框
2、架42.1、web层:struts2+conversion注解插件42.2、持久层:hibernate+ibatis42.2、ioc:spring42.4、页面ui:extjs44第三章 项目整体结构53.1、代码结构5第四章 codefly使用说明64.1、使用说明6湖南省赛宝软件服务有限公司 page: 19更新历史版本号作者(日期)评审者(日期)批准者(日期)说明1.1李鸿翼 2011-7-26初评稿前言为了让用户初步了解如何使用sshi 框架,以及该程序的一些主要特征,我们特撰写了此操作手册。手册根据程序的菜单组织章节,每个菜单为一个章节,共有4个章节,涵盖了sshi 框架软件的所有功
3、能及一些理论知识。如果本手册能促使软件使用者更加熟练使用sshi 框架,手册的编撰者便感到非常欣慰了。本手册由李鸿翼编写,第一章为软件的安装配置权限控制信息,新的功能模块从第二章开始。由于编者水平有限,时间紧张,手册中一定存在疏漏和不足,恳请广大用户批评指证。 编 者:李鸿翼 2011 年 7月 26日第一章 软件的安装与常用配置1.1、软件安装环境要求1.1.1、软件环境eclipse jdk6tomcat71.1.2、硬件环境 无1.2、软件的安装指导 无1.2.1、服务器端安装 无1.2.2、客户端安装 bs系统此处为从浏览器如何访问,cs系统则为实际如何安装客户端软件1.3、数据库初始
4、化1.3.1、数据库管理系统的安装 无1.3.2、数据库安装及数据导入 无1.4、用户权限设置(软件授权与许可) 无1.5、软件使用特点及惯例 无1.6、基础知识学习网站技术部共享工具:29 html : javacript : 第二章 技术框架后台调用架构:2.1、web层:struts2+conversion注解插件l url action匹配规则:xtgl/user!add.action - xtgl包下的useraction里的add方法 l 在action里如何使用service: 使用resource注解 如: resource(name=”xxxservic
5、eimpl”) name的值为具体实现类名(首字母小写)2.2、持久层:hibernate+ibatis 略2.2、ioc:spring 略2.3、页面ui:extjs41.extjs开发包: bulid目录是ext压缩后的代码。docs目录包含ext文档,特别重要的是api。examples目录包含官方演示实例local目录包含多国语言的资源文件,其中是简体中文 pkgs目录是ext各部分功能的打包 resource目录包含ext的所有图片和样式 src目录是未压缩的源码bootstrap.js是ext的引导文件,可以自动切换ext-all.js和ext-all-debug.jsext-al
6、l.js文件是核心库,必须引入ext-all-debug是ext-all.js的调试版本2.如何建立一个hello word.解压引入到eclipse.3.extjs基本概念 panel面板 : 面板是一块空白区域,里面可以放各种组件,支持extjs的各种布局。layout布局 : 布局是指组件在一个容器中的摆放方式。componenet组件 : 组件是可以重用的特定功能。如简单的按钮,数据表格等。window窗体: 它并不是一个真正的windows窗口,继承于面板,本质是一个css层,所以不可能拖拽到浏览器外 。dialog对话框 : 普通对话框、选择对话框、输入对话框,其本质也是一个css
7、格式化好的层。4.json对象json对象以”开始,以”结束,属性名和值以”:”分割,属性间用“,”分割。例如: var person = name :tom,age:23,books : name : java,name : .net属性值可以是字符串,数字,数组,也可以是json对象。 5.常用函数 ext.onready(function(); 当页面元素加载完毕后,执行function。ext.getcmp(id); 通过id获取组件。ext.get(id) 通过id获取dom元素,与document.getelementbyid()一样。5布局l accordion(折叠布局)见ac
8、cordion.htmll border布局分为east,south,west,north,center5个部分。任何border布局必须含有一个region:center位置如果有west或者east必须指定宽度,剩下的就是center宽度。如果有north或者south必须制定高度,剩下的高度就是center高度 见border.hmtll hbox水平盒子布局按水平方向摆放,宽度用flex或者width表示。width为固定宽度,flex为减去width宽度后的百分比 见hbox.html l vbox垂直盒子布局 6.表单ext.form.formpanela) 表单基本组件见file
9、dtypes.htmlb) 表单验证 vtype7ajax请求ext.ajax.request( url: page.php, /请求连接地址 params: id: 1 /传递参数 , success: function(response) /请求成功后执行方法 var text = response.responsetext; / process server response here );补充例子:局部更新页面方法 ext.onready(function() var loader = ext.get(info).getloader(); loader.startautorefresh
10、(1000, url : index.html, renderer :function(loader,resp,req) ); );8.数据模型model 数据实体模型代表数据实体。定义实体,常用配置:fields,定义实体有哪些字段,定义一些方法。ext.define(user, extend: ext.data.model, fields: name: name, type: string, name: age, type: int, name: phone, type: string, name: alive, type: boolean, defaultvalue: true , ch
11、angename: function() var oldname = this.get(name), newname = oldname + the barbarian; this.set(name, newname); );创建实体:var user = ext.create(user, name : conan, age : 24, phone: 555-555-5555);user.changename();user.get(name); /returns conan the barbarianassociations模型关联,不常用ext.define(post, extend: ex
12、t.data.model, fields: id, user_id, belongsto: user, hasmany : model: comment, name: comments);ext.define(comment, extend: ext.data.model, fields: id, user_id, post_id, belongsto: post);ext.define(user, extend: ext.data.model, fields: id, hasmany: post, model: comment, name: comments );validations 验证
13、ext.define(user, extend: ext.data.model, fields: name: name, type: string, name: age, type: int, name: phone, type: string, name: gender, type: string, name: username, type: string, name: alive, type: boolean, defaultvalue: true , validations: type: presence, field: age, type: length, field: name, m
14、in: 2, type: inclusion, field: gender, list: male, female, type: exclusion, field: username, list: admin, operator, type: format, field: username, matcher: /(a-z+)0-92,3/ );var instance = ext.create(user, name: ed, gender: male, username: edspencer);var errors = instance.validate();store 数据集 保存model
15、对象的客户端缓存,提供了数据的过滤,排序,查找。var store = ext.create(ext.data.store, autoload: true, model: user, proxy: type: ajax, url : users.json, reader: type: json, root: users );proxy 数据代理用来处理数据的获取和保存。types of proxythere are two main types of proxy -clientandserver. the client proxies save their data locally and i
16、nclude the following subclasses: localstorageproxy- saves its data to localstorage if the browser supports it sessionstorageproxy- saves its data to sessionstorage if the browsers supports it memoryproxy- holds data in memory only, any data is lost when the page is refreshedthe server proxies save t
17、heir data by sending requests to some remote server. these proxies include: ajax- sends requests to a server on the same domain jsonp- uses json-p to send requests to a server on a different domain direct- usesext.direct.managerto send requestsproxies operate on the principle that all operations per
18、formed are either create, read, update or delete. these four operations are mapped to the methodscreate,read,updateanddestroyrespectively. each proxy subclass implements these functions.base class for any client-side storage. used as a superclass formemoryandweb storageproxies. do not use directly,
19、use one of the subclasses instead.exy.memory读取数据到内存,页面刷新,数据丢失。/this is the model we will be using in the storeext.define(user, extend: ext.data.model, fields: name: id, type: int, name: name, type: string, name: phone, type: string, mapping: phonenumber );/this data does not line up to ou
20、r model fields - the phone field is called phonenumbervar data = users: id: 1, name: ed spencer, phonenumber: 555 1234 , id: 2, name: abe elias, phonenumber: 666 1234 ;/note how we set the root in the reader to match the data structure abovevar store = ext.create(ext.data.store, autoload: true, mode
21、l: user, data : data, proxy: type: memory, reader: type: json, root: users );其他客户端proxy ,不常用,想了解去官网查看。exy.ajaxext.define(user, extend: ext.data.model, fields: id, name, email);/the store contains the ajaxproxy as an inline configurationvar store = ext.create(ext.data.store, model: user, p
22、roxy: type: ajax, url : users.json );store.load();其他服务器端不常用。readerwriter 数据读写器用于读取原始数据到model实体模型,或者将model实体模型格式化为指定的数据格式reader 将代理读取到的原始数据按照不同规则解析,将解析后的数据放到模型对象中,常见的是json.ext.define(user, extend: ext.data.model, fields: id, name, email);var store = ext.create(ext.data.store, model: user, proxy: type
23、: ajax, url : users.json, reader: type: json );简单数据格式 id: 1, name: ed spencer, email: ed , id: 2, name: abe elias, email: abe 自定义数据格式reader: type: json, root: users users: id: 1, name: ed spencer, email: ed , id: 2, name: abe elias, email: abe 定位读取位置:resordreader: type : json, root : users, record:
24、user total: 122, offset: 0, users: id: ed-spencer-1, value: 1, user: id: 1, name: ed spencer, email: ed writer 将代理提交到服务端数据进行编码,常见的是json. 了解下就可以了。9.grid组件ext.grid.panel主要由两部分组成:处理数据的store,用于渲染表头的columnsext.create(ext.data.store, storeid:simpsonsstore, fields:name, email, phone, data:items: name: lisa
25、, email:lisa, phone:555-111-1224 , name: bart, email:bart, phone:555-222-1234 , name: homer, email:home, phone:555-222-1244 , name: marge, email:marge, phone:555-222-1254 , proxy: type: memory, reader: type: json, root: items );ext.create(ext.grid.panel, title: simpsons, store: ext.data.storemanager
26、.lookup(simpsonsstore), columns: header: name, dataindex: name , header: email, dataindex: email, flex: 1 , header: phone, dataindex: phone , height: 200, width: 400, renderto: ext.getbody()10.tree组件第三章 项目整体结构3.1、代码结构 l 项目按模块划分l 每个模块对应三层结构mapper:持久层 下面的包按该模块涉及到实体划分 以dao为后缀的是hibernate的dao接口层 以daoimpl
27、为后缀的是dao的实现类 以mapper为后缀的是ibatis接口service:业务层 以service为后缀的是hibernate的业务层接口 以serviceimpl为后缀的是业务层接口的实现类web:控制层 以action为后缀是struts2的actionl 三层接口和类的名称严格按照以上后缀编写l 下面为实际例子中代码结构示意图: action 代码说明:public void add() 新增一个实体public void updateui() 返回要修改的实体,传递到修改界面public void update() 修改实体public void delete() 删除实体pu
28、blic void pagequerybyhibernate() 分页查询getresponse().setcharacterencoding(utf-8); /设置为utf-8编码extjspage.setstart(start); /前端传递过来 开始记录extjspage.setlimit(limit); /前端传递过来 每页显示几条记录extjspage.settotalcount(this.userservice.queryusercount(); /设置记录总数量stringbuilder wherehql = new stringbuilder(); /构造where条件语句li
29、nkedlist params = new linkedlist(); /构造where条件参数值if (null != user.getaddress() & !user.getaddress().equals() wherehql.append( o.address like ?);params.add(% + user.getaddress() + %);extjspage.setresult(this.userservice.queryusers(start, limit,wherehql.tostring(), params.toarray(); jsonutils.write(extjspage, getresponse().getwriter(); /把封装分页结果传递给前台starti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年新教材高中政治 综合探究一教学实录 新人教版必修第一册
- 专业认识实习报告汇编6篇
- 行为目标怎么写
- 八年级历史上册 第三单元 资产阶级民主革命与中华民国的建立 第8课 革命先行者孙中山教学实录 新人教版
- 社会实践活动过程
- 6 感官总动员 教学实录-2024-2025学年科学一年级上册苏教版
- 五年级我想对您说500字满分作文10篇参考
- 员工引咎辞职辞职报告15篇
- 第6课 认识机器人构件(教学实录)2023-2024学年六年级下册信息技术闽教版
- 个人小学述职报告范文集合七篇
- 辽宁省沈阳市沈河区2024-2025学年九年级上学期期末道德与法治试题(含答案)
- 2024年独家:国际商标授权使用合同
- 2024年农行农业用途个人贷款抵押合同样本3篇
- 2024年沥青搅拌站建设及设备供应协议版
- 辽宁省部分高中2023-2024学年高二上学期期末考试 物理 含解析
- 江西省赣州市南康区2023-2024学年八年级上学期期末考试数学试卷(含答案)
- 2024年《档案工作实务》考试复习题库400题(含答案)
- 设计质量工程师(DQE)的角色认知及工作职责
- 2024项目经理讲安全课
- 烤肠销售合同范例
- 中国共产主义青年团团章
评论
0/150
提交评论