基于基礎(chǔ)框架開發(fā)約定_第1頁(yè)
基于基礎(chǔ)框架開發(fā)約定_第2頁(yè)
基于基礎(chǔ)框架開發(fā)約定_第3頁(yè)
基于基礎(chǔ)框架開發(fā)約定_第4頁(yè)
基于基礎(chǔ)框架開發(fā)約定_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、文件編號(hào):Q/KC-JL-RDM-05受控狀態(tài):受控 非受控保密級(jí)別:公司級(jí) 部門級(jí) 項(xiàng)目級(jí) 普通級(jí)采納標(biāo)準(zhǔn):CMMI DEV V1.2 記錄編號(hào):分發(fā)編號(hào):基于基礎(chǔ)框架的開發(fā)約定Version 1.02011-4-11Written By Creator湖南科創(chuàng)信息技術(shù)股份有限公司All Rights Reserved記錄更改歷史序號(hào)更改原因版本作者更改日期備 注1創(chuàng)建1.0劉劍峰2011-4-11修改1.0尹標(biāo)平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項(xiàng)目目錄與配置文件 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函數(shù) 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公共回調(diào)函數(shù)- 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表單元素值:名稱轉(zhuǎn)json參數(shù)格式函數(shù)formToJson PAGEREF _Toc296433725 h 9 HYPERLINK l _Toc296433726 2.7打開窗口的函數(shù) PAGEREF _Toc296433726 h 9 HYPERLINK l _Toc2964

5、33727 2.7.1典型的應(yīng)用操作案例 PAGEREF _Toc296433727 h 10 HYPERLINK l _Toc296433728 3Jsp頁(yè)面 PAGEREF _Toc296433728 h 10 HYPERLINK l _Toc296433729 3.1公用文件導(dǎo)入 PAGEREF _Toc296433729 h 11 HYPERLINK l _Toc296433730 3.2文本輸入框的樣式 PAGEREF _Toc296433730 h 11 HYPERLINK l _Toc296433731 3.3頁(yè)面保護(hù)的配置 PAGEREF _Toc296433731 h 12

6、HYPERLINK l _Toc296433732 3.4在頁(yè)面和控制器方法中獲取用戶會(huì)話信息對(duì)象的方法 PAGEREF _Toc296433732 h 13 HYPERLINK l _Toc296433733 4Mvc控制器編寫和配置規(guī)約 PAGEREF _Toc296433733 h 14 HYPERLINK l _Toc296433734 4.1映射路徑統(tǒng)一采用bean名稱映射方式 PAGEREF _Toc296433734 h 14 HYPERLINK l _Toc296433735 4.2控制器方法跳轉(zhuǎn)路徑全部采用path:別名方式,別名命名方式盡量和控制器方法名稱保持一致 PAGE

7、REF _Toc296433735 h 15 HYPERLINK l _Toc296433736 4.3使用ResponseBody注解方式將返回值作為響應(yīng)直接返回到客服端 PAGEREF _Toc296433736 h 16 HYPERLINK l _Toc296433737 4.4控制方法參數(shù)綁定盡量采用對(duì)象綁定方式 PAGEREF _Toc296433737 h 17 HYPERLINK l _Toc296433738 4.5分頁(yè)使用異步加載模式 PAGEREF _Toc296433738 h 17 HYPERLINK l _Toc296433739 4.6所有控制器相關(guān)業(yè)務(wù)組件全部采用

8、ioc注入方式初始化 PAGEREF _Toc296433739 h 19 HYPERLINK l _Toc296433740 4.7所有業(yè)務(wù)組件引用的其他業(yè)務(wù)組件和dao組件全部采用ioc注入方式初始化 PAGEREF _Toc296433740 h 19 HYPERLINK l _Toc296433741 4.8持久化組件全部采用ConfigSQLExecutor組件,sql語(yǔ)句配置到xml文件中,ConfigSQLExecutor組件實(shí)例通過ioc注入到dao組件中,sql配置文件路徑與dao實(shí)現(xiàn)類在同一個(gè)目錄下,將sql配置文件以構(gòu)造函數(shù)的方式注入到ConfigSQLExecutor組

9、件,sql語(yǔ)句的配置名稱盡量和控制器方法的名稱保持一致 PAGEREF _Toc296433741 h 20一般約定項(xiàng)目目錄與配置文件(根據(jù)具體項(xiàng)目組制定)數(shù)據(jù)復(fù)用的源碼目錄:CreatorESBsrccomchinacreatoresbdatareuse 數(shù)據(jù)復(fù)用JSP根目錄:CreatorESBWebRootdatareusee 數(shù)據(jù)復(fù)用mvc配置文件:WEB-INF/dataresuse/bboss-esb-datareuse.xml 功能模塊目錄(根據(jù)具體項(xiàng)目組制定)數(shù)據(jù)源管理的包為datasource共享項(xiàng)管理的包為metadata 數(shù)據(jù)對(duì)象管理的包為codeset復(fù)用服務(wù)維護(hù)的包為

10、servicereuse全局參數(shù)管理的包為common業(yè)務(wù)條線管理的包為businessline公用變量項(xiàng)目公用的變量一般寫在com.chinacreator.esb.datareuse.util. Constants類中數(shù)據(jù)復(fù)用的數(shù)據(jù)源:DATAREUSE_DBNAMESVN提交SVN提交:請(qǐng)使用Eclipse的Team-Synchronize with repository比較后提交! 提交代碼時(shí),盡量寫上Comment 。代碼生成(可選)可以使用CreatorESBsrccomchinacreatoresbtoolsCodeGenerator.java來生成entity代碼與DAO中的s

11、ql 。公用Js函數(shù)easyuiFormNew/* 將form包裝成easyui form* auther 劉劍峰* date 2011-04-20* param formTag jquery定義form的表達(dá)式如#queryForm* param url form提交地址* param successCallBackFun 操作成功后的回調(diào)方法* 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); );公共回調(diào)函數(shù)- ajaxCallBackNew/* ajax提交返回后,刷新查詢列表* auther 劉劍峰* date 2011-04-15* param responseText ajax請(qǐng)求響應(yīng)內(nèi)容* param textstatus ajax響應(yīng)狀態(tài)* param queryMethod 查詢列表函數(shù)名* param successMsg 操作成功提示信息*/function ajaxCallBackNew(responseText,businessStatus, textStatus, successCallBackFun, successMsg)if

15、(businessStatus)if (businessStatus = success)if (successMsg)$.messager.alert(提示對(duì)話框 , successMsg );if (successCallBackFun)successCallBackFun(responseText); else $.messager.alert(操作失敗 , 原因如下:+ responseText, error); 顯示遮罩層- blockUI/* 顯示遮罩層* auther 劉劍峰* date 2011-04-15 * msgContent 提示信息,不指定則按默認(rèn)值*/functio

16、n blockUI(msgContent)if (!msgContent)msgContent = 正在處理,請(qǐng)稍候.;$().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表單元素值:名稱轉(zhuǎn)json參數(shù)格式函數(shù)formToJson/* 將form里的字段值組裝成可用于ajax提交的json對(duì)象* auther 劉劍峰* date 2011-04-15* param formTag jquery定義form的表達(dá)式如#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;打開窗口的函數(shù)JqueryDialog.Open(所屬分組及服務(wù)權(quán)限+name+, url, 800,640);典型的應(yīng)用操作案例/對(duì)列表中的數(shù)據(jù)進(jìn)行操作function manageItem(url, confirmMsg, successMsg)/已選的checkbox(1表示最多可選1條數(shù)據(jù))v

19、ar cks = checkSelCheckItem(checkItem, 1);if (cks)$.messager.confirm(提示對(duì)話框, 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請(qǐng)求響應(yīng)內(nèi)容,ajax響應(yīng)狀態(tài), 查詢列表函數(shù)名, 操作成功提示信息(沒有不提示)*/if(responseText.e)ajaxCallBackNew(responseText.e,responseText.status, textStatus, queryRequester, successMsg);elseajaxCallBackNew(responseText.data,responseText.status, textStatus, queryRequester, successMsg);););Jsp頁(yè)面參照/CreatorESB/WebRoot/dat

21、areuse/datasource/main.jsp的寫法公用文件導(dǎo)入數(shù)據(jù)源查詢importAndTaglib.jsp: 標(biāo)簽和java包導(dǎo)入accessControl.jsp: 權(quán)限檢查commonCssScript.jsp:公用css和js導(dǎo)入jqureyEasyui.jsp: jquery easyui的js和css導(dǎo)入dialog.include.jsp: 彈出窗口依賴的js和css文本輸入框的樣式在$(document).ready方法中,調(diào)用addInputCss()函數(shù)$(document).ready(function()addInputCss();/加載公共樣式到表單元素 c

22、opyNameToId();/將表單元素的name屬性付給id屬性(如果該表單元素沒有指定id屬性) /綁定form的action屬性,設(shè)置提交回調(diào)函數(shù) easyuiForm(#theForm,createRequester.page, closeSelf,操作成功););指定input的classinput id=ds_name class=input_defaultname=ds_name type=text若該輸入框需要驗(yàn)證,采用jquery easyui的寫法,可查看其相關(guān)文檔。input class=input_default easyui-validateboxid=ds_name

23、 name=ds_name type=text文本信息輸入框的寬度默認(rèn)為75%,若要讓寬度默認(rèn)為100%,可以在jsp頁(yè)面上加入css.input_default width: 100%;頁(yè)面保護(hù)的配置在bboss-mvc.xml文件中做以下配置: !- - 其中的SYSAuthenticateInterceptor攔截器就是頁(yè)面保護(hù)的攔截器其中的SYSAuthenticateInterceptor攔截器就是頁(yè)面保護(hù)的攔截器,三個(gè)屬性:patternsInclude:配置需要攔截url模式規(guī)則patternsExclude:配置不需要攔截url模式規(guī)則redirecturl:如果沒有登錄,默認(rèn)

24、跳轉(zhuǎn)頁(yè)面如果沒有配置patternsInclude就默認(rèn)攔截所有的頁(yè)面,除非有頁(yè)面不需要攔截(配置了patternsExclude規(guī)則),redirecturl沒有配置的話,也默認(rèn)跳轉(zhuǎn)到login.jsp。在頁(yè)面和控制器方法中獲取用戶會(huì)話信息對(duì)象的方法有兩種方法從本地線程中獲?。篶om.chinacreator.security.AccessControl control = com.chinacreator.security.AccessControl.getAccessControl();從HttpServletRequest對(duì)象中獲取:com.chinacreator.security.

25、AccessControl control = com.chinacreator.security.AccessControl.getAccessControl(request);分頁(yè)字段排序設(shè)定標(biāo)簽設(shè)定組件設(shè)定控制器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);、動(dòng)態(tài)sqlMvc控制器編寫和配置規(guī)約映射路徑統(tǒng)一采用bean名稱映射方式控制器方法跳轉(zhuǎn)路徑全部采用path:別名方式,別名命名方式盡量和控制器方法名稱保持一致使用ResponseBody注解方式將返回值作為響應(yīng)直接返回到客服端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);控制方法參數(shù)綁定盡量采用對(duì)象

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);分頁(yè)使用異步加載模式主頁(yè)面(包含分頁(yè)的頁(yè)面):$(document).ready(function() $(#pagecontainer1).load(pagerqueryuser1.htm #pagecontent););分頁(yè)頁(yè)面: 全選 用戶口令:沒有數(shù)據(jù)input class=checkbox onClick=checkOne(checkBoxAll,id) type=checkbox name=id value= 所有控制器相關(guān)業(yè)務(wù)組件全部采用ioc注入方式初始

33、化所有業(yè)務(wù)組件引用的其他業(yè)務(wù)組件和dao組件全部采用ioc注入方式初始化持久化組件全部采用ConfigSQLExecutor組件,sql語(yǔ)句配置到xml文件中,ConfigSQLExecutor組件實(shí)例通過ioc注入到dao組件中,sql配置文件路徑與dao實(shí)現(xiàn)類在同一個(gè)目錄下,將sql配置文件以構(gòu)造函數(shù)的方式注入到ConfigSQLExecutor組件,sql語(yǔ)句的配置名稱盡量和控制器方法的名稱保持一致Sql配置文件示例:持久層配置-poolman.xmllocalbspffalsejdbc/mysql-dsoracle.jdbc.driver.OracleDriverjdbc:oracle

34、:thin:/19:1521/orclesbesbREAD_COMMITTEDtruefalse2010falsetrue50truefalse1200002400005truecomposite60select 1 from dualfalsefalsedatareusejdbc/mysql-dstrue每個(gè)業(yè)務(wù)系統(tǒng)使用自己的數(shù)據(jù)源名稱,bspf為系統(tǒng)管理保留數(shù)據(jù)源名稱,例如數(shù)據(jù)復(fù)用平臺(tái)的數(shù)據(jù)源名稱為:datareuse即使datareuse和bspf是同一個(gè)數(shù)據(jù)庫(kù)也要分開,可將datareuse引用到bspf上面。如果想在日志文件中看到生成的sql語(yǔ)句,可以將對(duì)應(yīng)數(shù)據(jù)源的showsql參數(shù)設(shè)置為truetrue代碼文件頭注釋的添加Java程序/* * Title: ServiceResult.java * Pa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論