版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文件编号:Q/KC-JL-RDM-05受控状态:受控 非受控保密级别:公司级 部门级 项目级 普通级采纳标准:CMMI DEV V1.2 记录编号:分发编号:基于基础框架的开发约定Version 1.02011-4-11Written By Creator湖南科创信息技术股份有限公司All Rights Reserved记录更改历史序号更改原因版本作者更改日期备 注1创建1.0刘剑峰2011-4-11修改1.0尹标平2011-6-21目 录 TOC o 1-3 h z u HYPERLINK l _Toc296433713 1一般约定 PAGEREF _Toc296433713 h 4 HYP
2、ERLINK l _Toc296433714 1.1项目目录与配置文件 PAGEREF _Toc296433714 h 4 HYPERLINK l _Toc296433715 1.2功能模块目录 PAGEREF _Toc296433715 h 4 HYPERLINK l _Toc296433716 1.3公用变量 PAGEREF _Toc296433716 h 4 HYPERLINK l _Toc296433717 1.4SVN提交 PAGEREF _Toc296433717 h 4 HYPERLINK l _Toc296433718 1.5代码生成 PAGEREF _Toc296433718
3、 h 4 HYPERLINK l _Toc296433719 2公用Js函数 PAGEREF _Toc296433719 h 5 HYPERLINK l _Toc296433720 2.1easyuiFormNew PAGEREF _Toc296433720 h 5 HYPERLINK l _Toc296433721 2.2easyuiFormSubmitNew PAGEREF _Toc296433721 h 6 HYPERLINK l _Toc296433722 2.3公共回调函数- ajaxCallBackNew PAGEREF _Toc296433722 h 7 HYPERLINK l
4、_Toc296433723 2.4显示遮罩层- blockUI PAGEREF _Toc296433723 h 8 HYPERLINK l _Toc296433724 2.5去掉遮罩层- blockUI PAGEREF _Toc296433724 h 8 HYPERLINK l _Toc296433725 2.6Form表单元素值:名称转json参数格式函数formToJson PAGEREF _Toc296433725 h 9 HYPERLINK l _Toc296433726 2.7打开窗口的函数 PAGEREF _Toc296433726 h 9 HYPERLINK l _Toc2964
5、33727 2.7.1典型的应用操作案例 PAGEREF _Toc296433727 h 10 HYPERLINK l _Toc296433728 3Jsp页面 PAGEREF _Toc296433728 h 10 HYPERLINK l _Toc296433729 3.1公用文件导入 PAGEREF _Toc296433729 h 11 HYPERLINK l _Toc296433730 3.2文本输入框的样式 PAGEREF _Toc296433730 h 11 HYPERLINK l _Toc296433731 3.3页面保护的配置 PAGEREF _Toc296433731 h 12
6、HYPERLINK l _Toc296433732 3.4在页面和控制器方法中获取用户会话信息对象的方法 PAGEREF _Toc296433732 h 13 HYPERLINK l _Toc296433733 4Mvc控制器编写和配置规约 PAGEREF _Toc296433733 h 14 HYPERLINK l _Toc296433734 4.1映射路径统一采用bean名称映射方式 PAGEREF _Toc296433734 h 14 HYPERLINK l _Toc296433735 4.2控制器方法跳转路径全部采用path:别名方式,别名命名方式尽量和控制器方法名称保持一致 PAGE
7、REF _Toc296433735 h 15 HYPERLINK l _Toc296433736 4.3使用ResponseBody注解方式将返回值作为响应直接返回到客服端 PAGEREF _Toc296433736 h 16 HYPERLINK l _Toc296433737 4.4控制方法参数绑定尽量采用对象绑定方式 PAGEREF _Toc296433737 h 17 HYPERLINK l _Toc296433738 4.5分页使用异步加载模式 PAGEREF _Toc296433738 h 17 HYPERLINK l _Toc296433739 4.6所有控制器相关业务组件全部采用
8、ioc注入方式初始化 PAGEREF _Toc296433739 h 19 HYPERLINK l _Toc296433740 4.7所有业务组件引用的其他业务组件和dao组件全部采用ioc注入方式初始化 PAGEREF _Toc296433740 h 19 HYPERLINK l _Toc296433741 4.8持久化组件全部采用ConfigSQLExecutor组件,sql语句配置到xml文件中,ConfigSQLExecutor组件实例通过ioc注入到dao组件中,sql配置文件路径与dao实现类在同一个目录下,将sql配置文件以构造函数的方式注入到ConfigSQLExecutor组
9、件,sql语句的配置名称尽量和控制器方法的名称保持一致 PAGEREF _Toc296433741 h 20一般约定项目目录与配置文件(根据具体项目组制定)数据复用的源码目录:CreatorESBsrccomchinacreatoresbdatareuse 数据复用JSP根目录:CreatorESBWebRootdatareusee 数据复用mvc配置文件:WEB-INF/dataresuse/bboss-esb-datareuse.xml 功能模块目录(根据具体项目组制定)数据源管理的包为datasource共享项管理的包为metadata 数据对象管理的包为codeset复用服务维护的包为
10、servicereuse全局参数管理的包为common业务条线管理的包为businessline公用变量项目公用的变量一般写在com.chinacreator.esb.datareuse.util. Constants类中数据复用的数据源:DATAREUSE_DBNAMESVN提交SVN提交:请使用Eclipse的Team-Synchronize with repository比较后提交! 提交代码时,尽量写上Comment 。代码生成(可选)可以使用CreatorESBsrccomchinacreatoresbtoolsCodeGenerator.java来生成entity代码与DAO中的s
11、ql 。公用Js函数easyuiFormNew/* 将form包装成easyui form* auther 刘剑峰* date 2011-04-20* param formTag jquery定义form的表达式如#queryForm* param url form提交地址* param successCallBackFun 操作成功后的回调方法* param successMsg 操作成功提示信息*/function easyuiFormNew(formTag, url, successCallBackFun, successMsg)$(formTag).form( url: url, on
12、Submit:function() var validated = $(this).form(validate); if (validated) blockUI(); return validated; , success:function(responseText) /去掉遮罩unblockUI();ajaxCallBackNew(responseText.data,responseText.status, ,successCallBackFun, successMsg); );easyuiFormSubmitNewfunction easyuiFormSubmitNew(formTag,
13、url, successCallBackFun, successMsg)$(formTag).form(submit, url: url, onSubmit:function() var validated = $(this).form(validate); if (validated) blockUI(); return validated; , success:function(responseText) /去掉遮罩unblockUI();ajaxCallBackNew(responseText.data,responseText.status, ,successCallBackFun,
14、successMsg); );公共回调函数- ajaxCallBackNew/* ajax提交返回后,刷新查询列表* auther 刘剑峰* date 2011-04-15* param responseText ajax请求响应内容* param textstatus ajax响应状态* param queryMethod 查询列表函数名* param successMsg 操作成功提示信息*/function ajaxCallBackNew(responseText,businessStatus, textStatus, successCallBackFun, successMsg)if
15、(businessStatus)if (businessStatus = success)if (successMsg)$.messager.alert(提示对话框 , successMsg );if (successCallBackFun)successCallBackFun(responseText); else $.messager.alert(操作失败 , 原因如下:+ responseText, error); 显示遮罩层- blockUI/* 显示遮罩层* auther 刘剑峰* date 2011-04-15 * msgContent 提示信息,不指定则按默认值*/functio
16、n blockUI(msgContent)if (!msgContent)msgContent = 正在处理,请稍候.;$().css(display:block, width:100%,height:$(window).height().appendTo(body);$().html(msgContent).appendTo(body).css(display:block,left: ($(document.body).outerWidth(true) - 190) / 2,top:($(window).height() - 45) / 2); 去掉遮罩层- blockUI/* 去掉遮罩层*
17、 auther 刘剑峰* date 2011-04-15 */function unblockUI()$(.datagrid-mask-msg).remove();$(.datagrid-mask).remove();Form表单元素值:名称转json参数格式函数formToJson/* 将form里的字段值组装成可用于ajax提交的json对象* auther 刘剑峰* date 2011-04-15* param formTag jquery定义form的表达式如#queryForm*/function formToJson(formId)var o = ; var fields = $(
18、formId).serializeArray(); $.each(fields, function(i, field) if (o) if (!o.push) o = o ; o.push(field.value | ); else o = field.value | ; ); return o;打开窗口的函数JqueryDialog.Open(所属分组及服务权限+name+, url, 800,640);典型的应用操作案例/对列表中的数据进行操作function manageItem(url, confirmMsg, successMsg)/已选的checkbox(1表示最多可选1条数据)v
19、ar cks = checkSelCheckItem(checkItem, 1);if (cks)$.messager.confirm(提示对话框, confirmMsg, function(r)if (r)var service_requester_id = cks.eq(0).val();$.post(url,service_requester_id : service_requester_id,function(responseText, textStatus) /alert(responseText.data);/alert(responseText.status);/*ajax提交返
20、回后,刷新查询列表*ajax请求响应内容,ajax响应状态, 查询列表函数名, 操作成功提示信息(没有不提示)*/if(responseText.e)ajaxCallBackNew(responseText.e,responseText.status, textStatus, queryRequester, successMsg);elseajaxCallBackNew(responseText.data,responseText.status, textStatus, queryRequester, successMsg);););Jsp页面参照/CreatorESB/WebRoot/dat
21、areuse/datasource/main.jsp的写法公用文件导入数据源查询importAndTaglib.jsp: 标签和java包导入accessControl.jsp: 权限检查commonCssScript.jsp:公用css和js导入jqureyEasyui.jsp: jquery easyui的js和css导入dialog.include.jsp: 弹出窗口依赖的js和css文本输入框的样式在$(document).ready方法中,调用addInputCss()函数$(document).ready(function()addInputCss();/加载公共样式到表单元素 c
22、opyNameToId();/将表单元素的name属性付给id属性(如果该表单元素没有指定id属性) /绑定form的action属性,设置提交回调函数 easyuiForm(#theForm,createRequester.page, closeSelf,操作成功););指定input的classinput id=ds_name class=input_defaultname=ds_name type=text若该输入框需要验证,采用jquery easyui的写法,可查看其相关文档。input class=input_default easyui-validateboxid=ds_name
23、 name=ds_name type=text文本信息输入框的宽度默认为75%,若要让宽度默认为100%,可以在jsp页面上加入css.input_default width: 100%;页面保护的配置在bboss-mvc.xml文件中做以下配置: !- - 其中的SYSAuthenticateInterceptor拦截器就是页面保护的拦截器其中的SYSAuthenticateInterceptor拦截器就是页面保护的拦截器,三个属性:patternsInclude:配置需要拦截url模式规则patternsExclude:配置不需要拦截url模式规则redirecturl:如果没有登录,默认
24、跳转页面如果没有配置patternsInclude就默认拦截所有的页面,除非有页面不需要拦截(配置了patternsExclude规则),redirecturl没有配置的话,也默认跳转到login.jsp。在页面和控制器方法中获取用户会话信息对象的方法有两种方法从本地线程中获取:com.chinacreator.security.AccessControl control = com.chinacreator.security.AccessControl.getAccessControl();从HttpServletRequest对象中获取:com.chinacreator.security.
25、AccessControl control = com.chinacreator.security.AccessControl.getAccessControl(request);分页字段排序设定标签设定组件设定控制器public ModelAndView queryListInfo(GroupBean bean,PagerParam(name = PagerParam.SORT,defaultvalue=group_name) String sortKey,PagerParam(name = PagerParam.DESC, defaultvalue = true) boolean desc
26、,PagerParam(name = PagerParam.OFFSET) long offset,PagerParam(name = PagerParam.PAGE_SIZE, defaultvalue = 10) int pagesize,ModelMap model)Daopublic ListInfo queryListInfo(String sortKey, boolean desc, long offset,int pagesize, GroupBean bean) throws Exception / TODO Auto-generated method stubbean.set
27、SortKey(sortKey);bean.setDesc(desc);return requesterGroupDao.queryListInfo(sortKey, desc, offset, pagesize,bean);、动态sqlMvc控制器编写和配置规约映射路径统一采用bean名称映射方式控制器方法跳转路径全部采用path:别名方式,别名命名方式尽量和控制器方法名称保持一致使用ResponseBody注解方式将返回值作为响应直接返回到客服端public ResponseBody(datatype = json)AjaxResponseBean updateRequesterFlag(
28、Requester requester,HttpServletRequest request)throws Exception / String userId = this.getUserId(request, response);String userId = AccessControl.getAccessControl(request).getUserID();AjaxResponseBean ajaxResponseBean = new AjaxResponseBean();try Date date = new Date();Timestamp timestamp = new Time
29、stamp(date.getTime();requester.setModifier(userId);requester.setModify_time(timestamp);requesterService.updateRequesterFlag(requester);ajaxResponseBean.setStatus(success); catch (Exception e) ajaxResponseBean.setStatus(error);return ajaxResponseBean;/ write(response, ajaxResponseBean);控制方法参数绑定尽量采用对象
30、绑定方式public ResponseBody(datatype = json)AjaxResponseBean updateRequesterFlag(Requester requester,HttpServletRequest request)throws Exception / String userId = this.getUserId(request, response);String userId = AccessControl.getAccessControl(request).getUserID();AjaxResponseBean ajaxResponseBean = new
31、 AjaxResponseBean();try Date date = new Date();Timestamp timestamp = new Timestamp(date.getTime();requester.setModifier(userId);requester.setModify_time(timestamp);requesterService.updateRequesterFlag(requester);ajaxResponseBean.setStatus(success); catch (Exception e) ajaxResponseBean.setStatus(erro
32、r);return ajaxResponseBean;/ write(response, ajaxResponseBean);分页使用异步加载模式主页面(包含分页的页面):$(document).ready(function() $(#pagecontainer1).load(pagerqueryuser1.htm #pagecontent););分页页面: 全选 用户口令:没有数据input class=checkbox onClick=checkOne(checkBoxAll,id) type=checkbox name=id value= 所有控制器相关业务组件全部采用ioc注入方式初始
33、化所有业务组件引用的其他业务组件和dao组件全部采用ioc注入方式初始化持久化组件全部采用ConfigSQLExecutor组件,sql语句配置到xml文件中,ConfigSQLExecutor组件实例通过ioc注入到dao组件中,sql配置文件路径与dao实现类在同一个目录下,将sql配置文件以构造函数的方式注入到ConfigSQLExecutor组件,sql语句的配置名称尽量和控制器方法的名称保持一致Sql配置文件示例:持久层配置-poolman.xmllocalbspffalsejdbc/mysql-dsoracle.jdbc.driver.OracleDriverjdbc:oracle
34、:thin:/19:1521/orclesbesbREAD_COMMITTEDtruefalse2010falsetrue50truefalse1200002400005truecomposite60select 1 from dualfalsefalsedatareusejdbc/mysql-dstrue每个业务系统使用自己的数据源名称,bspf为系统管理保留数据源名称,例如数据复用平台的数据源名称为:datareuse即使datareuse和bspf是同一个数据库也要分开,可将datareuse引用到bspf上面。如果想在日志文件中看到生成的sql语句,可以将对应数据源的showsql参数设置为truetrue代码文件头注释的添加Java程序/* * Title: ServiceResult.java * Pa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技项目调节费合同
- 合作伙伴协议:共同开发软件合作协议
- 标准工程采购合同文本
- 广东省房产交易代理合同
- 施工合同情势变更对工程验收的影响与对策
- 房屋抵押贷款合同案例
- 2024年饭庄转让合同样本
- 劳务外包合同补充协议2024年
- 2024个人合作协议范本
- 2024年简易苗木销售的简单合同范本
- 甲状腺危象的观察及护理汇报
- 2024年广东省广州市市中考数学试卷真题(含答案解析)
- 年兽来了课件
- JT-T-524-2019公路工程水泥混凝土用纤维
- JBT 12403.1-2015 数控深孔珩磨机床 第1部分:精度检验
- 租赁合同增加承租人补充协议
- 语文五年级下册第六单元大单元整体教学设计
- QCT267-2023汽车切削加工零件未注公差尺寸的极限偏差
- 内科知识练习题库(附答案)
- 物业反恐应急演练方案(2篇)
- (高清版)JTG 2232-2019 公路隧道抗震设计规范
评论
0/150
提交评论