收藏 分享(赏)

4_CMIS培训-前端页面组件-JS.pptx

上传人:czsj190 文档编号:4789373 上传时间:2019-01-13 格式:PPTX 页数:83 大小:1.01MB
下载 相关 举报
4_CMIS培训-前端页面组件-JS.pptx_第1页
第1页 / 共83页
4_CMIS培训-前端页面组件-JS.pptx_第2页
第2页 / 共83页
4_CMIS培训-前端页面组件-JS.pptx_第3页
第3页 / 共83页
4_CMIS培训-前端页面组件-JS.pptx_第4页
第4页 / 共83页
4_CMIS培训-前端页面组件-JS.pptx_第5页
第5页 / 共83页
点击查看更多>>
资源描述

1、前端页面组件,Copyright 2009 Yucheng Technologies Limited All Rights Reserved. 北京宇信易诚科技有限公司,提纲,前端组件-异步操作,AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML)。 AJAX其实是多种技术的综合,包括Javascript、XHTML 和CSS、DOM、XML 和XSTL、XMLHttpRequest。其中:使用 XHTML 和CSS 标准化呈现,使用DOM 实现动态显示和交互,使用XML 和XSTL 进行数据交换与处理,使用XMLHttpReques

2、t 对象进行异步数据读取,使用Javascript 绑定和处理所有数据。 Ajax的核心是JavaScript对象XmlHttpRequest。 AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。 AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。,前端组件-异步操作,使用AJAX: 减轻服务器的负担。AJAX 的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。 无刷新更新页面,减少用户心理和实际的等待时间。特别的,当要读取大量的数据的时候

3、,不用像Reload 那样出现白屏的情况,AJAX 使用XMLHTTP 对象发送请求并得到服务器响应,在不重新载入整个页面的情况下用Javascript 操作DOM 最终更新页面。所以在读取数据的过程中,用户所面对的不是白屏,是原来的页面内容(也可以加一个Loading 的提示框让用户知道处于读取数据过程),只有当数据接收完毕之后才更新相应部分的内容。这种更新是瞬间的,用户几乎感觉不到。 带来更好的用户体验。 可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。 可以调用外部数据。 基于标准化的并被广泛支持的技术,不需要下载插

4、件或者小程序。 进一步促进页面呈现和数据的分离。,EMP中的异步,EMP中提供基于YUI(Yahoo UI组件)的前端AJAX支持,提供基本JS调用,实现页面的局部更新。,异步操作,EMP中的异步-前台写法:function 函数名()var handleSuccess = function(o) if (o.responseText != undefined) try var jsonstr = eval(“(“ + o.responseText + “)“); catch (e) alert(“Parse jsonstr define error!“ + e); return; var h

5、andleFailure = function(o) ;var callback = success : handleSuccess,failure : handleFailure;var url = ;var obj1 = YAHOO.util.Connect.asyncRequest(POST, url, callback) ,前端组件-异步操作,EMP中的异步-Action配置:在GetLegalAndRealInfoByCertOp类中,一定要把output里面的字段放到context中,不然前台无法获取,异步操作练习,提纲,JavaScript扩展,JavaScript 被设计用来向

6、 HTML 页面添加交互行为。 JavaScript 是一种脚本语言(脚本语言是一种轻量级的编程语言)。 JavaScript 由数行可执行计算机代码组成。 JavaScript 通常被直接嵌入 HTML 页面。 JavaScript 是一种解释性语言(就是说,代码执行不进行预编译)。功能: 增强页面动态效果实现页面与用户的实时交互document.write(“Hello World!“); ,JavaScript代码,JavaScript 代码是 JavaScript 语句的序列。 浏览器按照编写顺序依次执行每条语句。document.write(“This is a header“);

7、document.write(“This is a paragraph“); document.write(“This is another paragraph“); JavaScript 代码块 JavaScript 可以分批地组合起来。 代码块以左花括号开始,以右花括号结束。 代码块的作用是一并地执行语句序列。,JavaScript注释,可以添加注释来对 JavaScript 进行解释,或者提高其可读性。 单行的注释以 / 开始。/ 这行代码输出标题:document.write(“This is a header“); / 这行代码输出段落:document.write(“This is

8、 a paragraph“); document.write(“This is another paragraph“); 多行注释以 /* 开头,以 */ 结尾。/* 下面的代码将输出 一个标题和两个段落 */ document.write(“This is a header“); document.write(“This is a paragraph“); document.write(“This is another paragraph“); ,JavaScript注释,使用注释来防止执行 用注释来阻止一行代码的执行:document.write(“This is a header“);

9、document.write(“This is a paragraph“);/document.write(“This is another paragraph“);用注释来阻止若干行代码的执行:/* document.write(“This is a header“); document.write(“This is a paragraph“);document.write(“This is another paragraph“); */ 在行末使用注释document.write(“Hello“); / 输出 “Hello“ document.write(“World“); / 输出 “W

10、orld“ ,Javascript扩展, ,JavaScript-数据类型,JavaScript-变量命名,变量是用于存储信息的容器,JavaScript 变量用于保存值或表达式。1、命名规则由字母、数字、下划线、美元符($)组成;变量必须以字母或下划线开始,不能以数字开头;变量名区分大小写;不允许使用JavaScript关键字做变量名;如:var a = 5; var _a=“”;在为变量赋文本值时,请为该值加引号。 var a = “abc”;如:var a; a=5; 2、变量声明时不指定类型,具体类型由将来给它赋值的对象类型决定;如:var num = 10; 3、重新声明变量,不会丢

11、失变量的原始值var x=5; var x;此时x的值仍然是5;,JavaScript-算术运算符,JavaScript 算术运算符 算术运算符用于执行变量与/或值之间的算术运算。 给定 y=5:,如果把数字与字符串相加,结果将成为字符串,JavaScript-赋值运算符,JavaScript 赋值运算符 赋值运算符用于给 JavaScript 变量赋值。 给定 x=10 和 y=5:,JavaScript-比较和逻辑运算符,比较运算符 比较运算符在逻辑语句中使用,以测定变量或值是否相等。 给定 x=5:,逻辑运算符 逻辑运算符用于测定变量或值之间的逻辑。 给定 x=6 以及 y=3,下表解释

12、了逻辑运算符:,JavaScript-条件运算符,条件运算符 JavaScript 还包含了基于某些条件对变量进行赋值的条件运算符。 var a= 1; var b= 3; var c = 4;var d;d = (a=b)?c:b;,JavaScript-条件语句,if 语句 在一个指定的条件成立时执行代码。 if.else 语句 在指定的条件成立时执行代码,当条件不成立时执行另外的代码。 if.else ifelse 语句 使用这个语句可以选择执行若干块代码中的一个。 switch 语句 使用这个语句可以选择执行若干块代码中的一个var num = 10; if(num = 5)alert

13、(“abc”); var num = 10; if(num = 5)alert(“abc”); elsealert(“abcd”); ,JavaScript-条件语句,var num = 10; if(num = 1)alert(“2”); else if(num = 2)alert(“3”); else alert(num+5); var num =5; switch(num)case 1 :alert(“a”);break;case 2:alert(“b”);break;default :alert(“c”+num); ,JavaScript-页面提示,警告框 警告框经常用于确保用户可以得

14、到某些信息。 当警告框出现后,用户需要点击确定按钮才能继续进行操作 alert(“请输入一个YYYY-MM-DD格式的日期”); 确认框 确认框用于使用户可以验证或者接受某些信息。 当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。 如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。 confirm(“文本“) 提示框 提示框经常用于提示用户在进入页面前输入某个值。 当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。 如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。 prompt(“文本“,

15、“默认值“),JavaScript-函数,JavaScript 函数 将脚本编写为函数,就可以避免页面载入时执行该脚本。 函数包含着一些代码,这些代码只能被事件激活,或者在函数被调用时才会执行。 你可以在页面中的任何位置调用脚本(如果函数嵌入一个外部的 .js 文件,那么甚至可以从其他的页面中调用)。函数在页面起始位置定义,即 部分。function displaymessage() alert(“Hello World!“) ,JavaScript-函数,如何创建函数: function 函数名(var1,var2,.,varX) 代码 var1, var2 等指的是传入函数的变量或值。 和

16、 定义了函数的开始和结束 也可以这样定义 function 函数名() 代码 注意: function必须全部小写; 在调用函数时,必须使用大小写完全相同的函数名; return 语句 return 语句用来规定从函数返回的值。 function prod(a,b) x=a*b ; return x;,JavaScript-函数练习, var x = 1; var y = 0; var z = 0; function add(n)n=n+1; y = add(x); function add(n)n=n+3; z = add(x); ,JavaScript-循环,JavaScript 循环在编

17、写代码时,我们常常希望反复执行同一段代码。我们可以使用循环来完成这个功能,这样就用不着重复地写若干行相同的代码。 for循环 var arrs = new Array(“a”,”b”); for(var I =0;iarrs.length;i+)alert(arrsi); while 循环 while 循环用于在指定条件为 true 时循环执行代码 while循环 var a = 0; while(a10)a+; ,JavaScript-循环,do.while 循环 do.while 循环是 while 循环的变种。该循环程序在初次运行时会首先执行一遍其中的代码,然后当指定的条件为 true

18、时,它会继续这个循环。所以可以这么说,do.while 循环为执行至少一遍其中的代码,即使条件为 false,因为其中的代码执行后才会进行条件验证。 do 需执行的代码 while (变量 var i=0 ; do document.write(“The number is ” + i) ;document.write(“”) i=i+1 ; while (i ,JavaScript-练习,for(i=0, j=0; i10, j6; i+, j+)k = i + j; ,JavaScript-break和continue,Break break 命令可以终止循环的运行,然后继续执行循环之后的

19、代码(如果循环之后有代码的话)。var i=0;for (i=0;i“); ,JavaScript-break和continue,Continue continue 命令会终止当前的循环,然后从下一个值继续运行。var i=0 ; for (i=0;i“); ,JavaScript-事件,onload 和 onUnload 当用户进入或离开页面时就会触发 onload 和 onUnload 事件。onFocus, onBlur 和 onChange onFocus、onBlur 和 onChange 事件通常相互配合用来验证表单。onSubmit onSubmit 用于在提交表单之前验证所有的

20、表单域。onMouseOver 和 onMouseOut onMouseOver 和 onMouseOut 用来创建“动态的”按钮。,JavaScript-事件,onload 和 onUnload 当用户进入或离开页面时就会触发 onload 和 onUnload 事件。function upperCase() var x=document.getElementById(“fname“).value;document.getElementById(“fname“).value=x.toUpperCase(); 输入您的姓名: ,JavaScript-事件,onblur 事件会在对象失去焦点时发

21、生function upperCase() var x=document.getElementById(“fname“).value;document.getElementById(“fname“).value=x.toUpperCase(); 输入您的姓名: onblur.html,JavaScript-事件,onchange 事件会在域的内容改变时发生function upperCase(x) var y=document.getElementById(x).value; document.getElementById(x).value=y.toUpperCase(); 输入您的姓名:on

22、change.html,JavaScript-事件,onclick 事件会在对象被点击时发生Field1: Field2: 点击下面的按钮,把 Field1 的内容拷贝到 Field2 中:Copy Textonclick.html,JavaScript-事件,ondblclick 事件会在对象被点击时发生Field1: Field2: 双击下面的按钮,把 Field1 的内容拷贝到 Field2 中:Copy Textondbclick.html,JavaScript-事件,onfocus 事件在对象获得焦点时发生function setStyle(x) document.getElemen

23、tById(x).style.background=“yellow“; First name: Last name: onfocus.html,JavaScript-事件,onselect事件会在文本框中的文本被选中时发生Select text: Select text: Hello world! onselect.html,JavaScript-trycatch 语句,try.catch 可以测试代码中的错误。try 部分包含需要运行的代码,而 catch 部分包含错误发生时运行的代码。 try /在此运行代码 catch(err) /在此处理错误 注意:try.catch 使用小写字母。大

24、写字母会出错,JavaScript-插入特殊字符,var str = “您好,“系统管理员“ !“; alert(str); alert(str+str); alert(str+str+“n“+str);,JavaScript-字符串对象,1、计算字符串长度var a = “您好”.length(); 2、indexOf():定位字符串中某一个指定的字符首次出现的位置var a = “Hello World!”indexOf(“World”) 的值为? 3、match():用来查找字符串中的特定字符,如果找到的话则返回改字符 4、replace():在字符串中用某些字符代替另一些字符,Java

25、Script-日期对象,1、返回当日的日期和时间var d = new Date();s += (d.getMonth() + 1) + “/“; / 获取月份。 s += d.getDate() + “/“; / 获取日。 s += d.getYear(); / 获取年份。 2、设置具体日期var d = new Date();d.setFullYear(1992,10,3);,JavaScript-数组,1、var arrs = new Array(“Oracle“,“SQLServer“);2、var arrs = new Array();arrs0 = “Oracle”;arrs1 =

26、 “SQLServer”;var arrs = new Array(3);3、split() 方法用于把一个字符串分割成字符串数组。var strs = “a,b,c,d,e,f”;var obj = str.split(“,”);则obj = “a“,“b“,“c“,“d“,“e“,“f“,JavaScript-取得页面对象,1、getElementById :获得指定ID值的对象2、getElementsByName:获得指定NAME值的对象数组3、getElementsByTagName:获得指定标签名的对象数组获得对象的值:var a = document.getElementById

27、(“ID”).value;,JavaScript-练习,1、加减乘除,2、定义一个数组,”ORACLE”,”SQLServer”,”DB2”,”SYSBASE”,”MYSQL”, 将其输出为一个字符串ORACLE,SQLServer,DB2,SYSBASE,MYSQL在页面上; 3、填充注释部分的函数体,使得 reverse()函数完成字符转换功能foo()函数调用弹出”成功”的对话框。 字符串“a,b,c,d,e,f,g”g,f,e,d,c,b,a” function foo() / 在此处加入代码,完成成功或者失败提示 function reverse(str) / 在此处加入代码,完成字

28、符串翻转功能 ,提纲,EMP平台前端组件-JS工具,addEvent addEvent方法是用于对某个HTML页面元素添加特定的事件,使用的方法如下: EMPTools.addEvent(element, “blur“, onBlurEvent, window) 其中的四个参数分别是: element:需要添加事件的页面元素对象 eventName:需要添加的事件名称,如blur、click、change(不需要带前缀on) method:事件触发后调用的JS方法(需要注意的是这里指的是JS方法,则不是JS方法的名称,如上述例子必须保证在执行这段JS之前,在页面中有一个onBlurEvent的

29、方法) host:调用JS方法的对象,即所调用的JS方法中使用this所代表的对象,EMP平台前端组件-JS工具,openWindow 打开当前页面的弹出窗口(同时兼容window.open和window.showModelDialog) 其中的参数是: url:弹出窗口的url winId:弹出窗口的id,只在window.open时才起作用 popparam:弹出窗口的参数设置,如大小、位置等等,缺省情况下的参数是:height=400, width=600, top=120, left=200, toolbar=no, menubar=no, scrollbars=yes, resiza

30、ble=no, location=no, status=no,EMP平台前端组件-JS工具,getByteLength 计算字符串的长度,用于计算HTML本身无法判断的双字节字符长度 其中的参数是: str:需要计算长度的字符串,EMP平台前端组件-JS工具,encodeURI对url进行规整并使用js的encodeURI进行编码 其中的参数是: url:需要encode的字符串 通常的使用方式是:var url = ?+paramStr; url = EMPTools.encodeURI(url); window.location = url;或者openWindow打开,提纲,系统技术框架

31、,MVC +业务组件+ 表模型 MVC +业务组件+JDBC 业务组件(BIZ COMPONENT)结构 DOMAIN:业务实体的VO,用于存储业务实体数据,贯穿EMP的OPERATION,业务组件的COMONET,AGENT,DAO层。 COMONENT:具体实现业务逻辑的JAVABEAN,调用AGENT,并被EMP的OPERATION调用。 AGENT:主要调用DAO及其他资源API(如通讯组件等)。 DAO:由EMP提供的数据库访问对象。 INTERFACE:业务组件间组件统一对外接口。,系统技术框架-OPERATION(操作类),Operation为业务逻辑实现的入口; 对于无需(或无

32、法)直接在biz中使用组件组装的业务逻辑的入口代码,使用operation接口来实现; operation有明确的业务含意,是一次完整的业务原子交易过程; operation的命名为业务述语,而不是技术述语(例如,名为合同签定,而不叫修改合同状态); 所有信贷系统的operation继承CMISOperation父类,而不直接继承Operation,以便与信贷系统进行统一的控制,如访问控制、事务控制等等; 在operation中可以自行进行数据库级事务操作,如获得、提交、回滚、关闭事务等,建议不自行处理数据库级事务; 在operation中对业务逻辑的实现过程尽量调用业务的Component,

33、禁止直接在业务代码的operation中直接访问业务库表(不直接使用SQL),也不能调用表模型的DAO,即不使用表模型敏捷开发的生成的OP直接操作数据库,只能通过COMPONENTS,调用AGENT,再由AGENT调用表模型或者通过JDBC实现的自有的DAO实现数据库操作。 service从Context中取得(使用Context.getService方法); 在operation中不可直接调用其它operation;,系统技术框架-Component(组件类),Component为业务逻辑实现,是组件的实现类; Component必须继承CMISComponent; Component中实现

34、业务逻辑中所有细节的业务处理,为上层Operation所使用; Component中可以直接访问业务库表,但建议使用组件对应的Agent来实现数据库操作; Component中不许进行数据库级事务操作,如提交、回滚; Component中不可直接调用其它operation,同一组件内的组件类,可以直接相互调用,不同组件的组件类,需要通过接口来进行调用; Component中的方法的输入参数中不用Context,每个输入参数要有明确用途; Component中的方法若需使用数据库连接,则从父类的getConnection方法获取连接,而不得自行新建连接; 每个Component都有至少应定义一个

35、异常类; 每个Component内的方法都应必须抛出异常,该异常为当前组件内定义的异常,或通用异常;,系统技术框架-Agent(组件代理类),Agent为业务的技术实现类,是组件的代理类; Agent必须继承CMISAgent; Agent中实现业务逻辑中所有细节的技术处理,仅为相同组件内的Component所使用,对其它组件不可用; Agent中可以直接访问业务库表,或第三方资源; Agent中不许进行数据库级事务操作,如提交、回滚; Agent中不可直接调用其它operation、component,同一组件内的Agent类,可以直接相互调用,不同组件的代理类不得相互调用; Agent中的

36、方法的输入参数中不用Context,每个输入参数要有明确用途; Agent中的方法若需使用数据库连接,则从父类的getConnection方法获取连接,而不得自行新建连接; 每个Agent内的方法都应必须抛出异常,该异常为当前组件内定义的异常,或通用异常;,系统技术框架-Interface(组件接口实现类),Interface用于封装组件对其它组件提供的方法,隔离功能的提供者与使用者; Interface为除所属组件之外的组件使用; Interface需实现组件中定义的接口类中的每个方法; Interface中不能直接访问数据库,或第三方资源; Interface中不许进行数据库级事务操作,如

37、提交、回滚; Interface中只许调用所属component中的方法,不能调用其它组件中的方法,也不能直接调用agent中的方法,不可直接调用operation; 每个Interface内的方法都应必须抛出异常,该异常为当前组件内定义的异常,或通用异常;,系统层次划分,界面层: 为用户与系统的接口,其使用EMP IDE工具生成主体页面代码,开发人员可适当调整,并使用js对界面要素进行访问与操作,在这一层负责界面逻辑的处理。 接入层: 为EMP基础支撑平台与业务逻辑功能接口(既平台调用业务逻辑的入口),其由EMP容器提供(使用EMP MVC实现对界面HTTP请求的响应,在对应的Operati

38、on中调用业务逻辑),在这一层负责一笔业务交易的完整处理(同一事务),以及平台与业务组件间的数据格式转换等基础的功能。 业务逻辑层:以业务组件为基本单元来完成各类不同的业务需求,其由各个业务组件组成,在这一层负责各个业务逻辑、业务流程处理的实现,但不宜包含技术细节,技术细节应屏蔽在技术实现层中。 技术实现层:为组件中业务逻辑的具体实现,其由各个业务代理组件,在这一层负责完成所有的技术细节,例如调用表模型提供的TableModelDAO中的通用功能。,业务组件结构,对业务功能将以两个次层进行划分业务组件 与 业务构件,业务组件,作为业务功能划分基本单元,其由若干个业务代理来实现;多个相关的业务组

39、件组成一个业务构件,业务构件作为最顶层的业务划分。 业务构件:是组件的集合,用于对同一类有内在联系的业务组件的包装,负责与其它业务模块之间的边界化分,其物理介质对应一个文件目录与一个构件配置文件。 业务组件:是业务逻辑的基本单元,用于对同一类业务逻辑的包装,负责业务功能之间的边界化分,其物理介质对应一个java类文件(所有业务组件需继承CMISComponent类)。 业务代理:代理业务组件完成具体的技术实现细节,其物理介质对应一个java类文件(所有业务代理需继承CMISAgent类)。在EMP支撑平台中是通过配置MVC中的Action实现接入,并在Operation中调用后台的业务组件,在

40、业务组件中调用业务代理,在业务代理中调用底层的技术组件。,业务组件结构,所有业务组件均通过Operation中被使用方调用,由ComponentFactory实例化某个(某几个)具体的业务组件,而所有组件必须继承CMISComponent; 在业务组件中调用业务代理,在业务组件的父类中使用AgentFactory来实例化某个(某几个)具体的业务代理(通过组件父类中的getAgentInstance方法),而所有代理必须继承CMISAgent; 在CMISComponent、CMISAgent两个父类中包含EMP的Context,但对于业务组件内其不可见,也不许使用,在实现业务逻辑时,若需要使用

41、平台技术组件功能,则使用父类的getConnection、getTableModelDAO等方法实现。 ComponentHelper类为组件的工具类,现负责提供平台数据结构与业务组件数据结构之间的专换功能。,业务组件调用约束,调用基本规则是在系统四个层次中,上层资源中可以调下层资源,而不能反向,同层之间需经过接口才能相互调用 Operation可以通过调用仍何业务组件(通过ComponentFactory实例化),业务组件中可以调用所在构件中的任意业务代理,而不能调用其他构件中的业务代理(通过构件的配置文件来实现该约束) 跨构件之间的组件间调用,需通过接口实现调用,构件之内的组件间调用不作该

42、约束,但建议尽可能通过接口实现调用。 跨构件之间的业务代理不能相互调用,构件之内的业务代理不作该约束,但建议尽可能业务代理间相互不调用。,代码开发规范,应用目录结构规范 图像、JS、CSS等对安全性要求不高的文件直接放在应用根目录下,以便于引用,例如:/应用根目录/images下存放所有的图像、/应用根目录/scripts放所有JS脚本、/应用根目录/styles下存放所有的样式; 类文件、JSP、各配置文件等安全性要求高的文件放在/应用根目录/WEB-INF下,便于作访问控制,例如:/应用根目录/WEB-INF/mvcs/CMISMvc下存放jsp; /应用根目录/scripts下除EMP提

43、供的JS之外,对于与信贷业务相关的JS,均放在/应用根目录/scripts/cmis/中,并且按组件再细分目录(例如,/应用根目录/scripts/cmis/CUS、/应用根目录/scripts/cmis/PUB); /应用根目录/WEB-INF/mvcs/CMISMvc下,一般分两级子目录,第一级是按业务组件分,其存放该业务相关的所有JSP,第二级按业务表名分,其存放表模型自动为生成的JSP; permission/client下存放 每个用户的界面权限文件,而permission所在目录由系统配置决定。,代码开发规范,包结构与命名规范 信贷管理系统的包名统一由com.yuchengtech

44、.cmis为起始,第四级包为与信贷业务相关的业务组件与技术组件,若业务组件需进一步划分,则可使用第五、第六级包名。包名不要超过六级。包名中的英文全部使用小写字母。 组件包名以组件英文名缩写为准例如: 客户管理组件包名:com.yucheng.cmis.cus,规范细则,DOMIAN它是贯穿其它三个层次的基础,主要是定义要参与的数据对象,并将其封装成类.存放目录如下 comyuchengcmisbizcomponentnamesubbizcomponentnamedomain 注: bizcomponentname:业务组件名称。如:cus subbizcomponentname:子业务组件名称

45、。如:cuscom:更深层次的子组件名 例子: comyuchengcmiscuscuscomdomain (com.yucheng.cmis.cus.cuscom.domain),规范细则,OPERATIONcomyuchengcmisbizcomponentnameop 注: bizcomponentname:业务组件名称。如:cus:更深层次的子组件名 例子: comyuchengcmiscusop (com.yucheng.cmis.cus.op),规范细则,COMPONET comyuchengcmisbizcomponentnamesubbizcomponentnamecompon

46、ent 注: bizcomponentname:业务组件名称。如:cus subbizcomponentname:子业务组件名称。如:cuscom:更深层次的子组件名 例子: comyuchengcmiscuscuscomcomponent (ponent),规范细则,AGENTcomyuchengcmisbizcomponentnamesubbizcomponentnameagent 注: bizcomponentname:业务组件名称。如:cus subbizcomponentname:子业务组件名称。如:cuscom:更深层次的子组件名 例子: comyuchengcmiscuscusc

47、omagent (com.ucheng.cmis.cus.cuscom.agent),规范细则,DAO 表模型的DAO不做处理 非表模型的JDBC实现的DAO规范如下: comyuchengcmisbizcomponentnamesubbizcomponentnamedao 注: bizcomponentname:业务组件名称。如:cus subbizcomponentname:子业务组件名称。如:cuscom:更深层次的子组件名 例子: comyuchengcmiscuscuscomdao (com.ucheng.cmis.cus.cuscom.dao),规范细则,组件名英文缩写表,类/接口

48、命名,类名和接口名由英文字母和数字组成,首字不能为数字,不要出现下划线。英文采用大小写混合的方式,每个单词的首字母大写,整个名称首字母大写。名称应简洁并清晰地表达该类或接口的作用。对于继承EMP组件的类命名,应采用如下规则:对于Action、Service、Controller、View这样的可扩展组件,类名应以各自的组件类别作为后缀。如:CMISController等。 operation: XxxOperation.java service: XxxService.java action: XxxAction.java extend: XxxExtend.java对于信贷业务系统中对于继承

49、CMISComponent的组件类,一律使用Component为后缀例如: CusComComponent对于继承CMISAgent的组件代理类,一律使用Agent为后缀例如:CusComAgent,成员变量命名,成员变量及方法名由英文字母和数字组成,首字不能为数字,不要出现下划线。英文采用大小写混合的方式,每个单词的首字母大写,但整个名称首字母小写。名称应简洁并清晰地表达该成员变量或方法的作用。常量则全部使用大写字母,并在单词之间使用下划线分割。对于JavaBean,作为属性的成员变量与其set、get、add方法原则上应保持名称对应,如param属性对应的set方法名为setParam。除了公开配置属性的set、get、add方法及一些必要的get方法外,Bean中尽量不要用set、get、add开头的方法执行其他操作,,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报