基线版本二次开发规范指导文档要点.docx
《基线版本二次开发规范指导文档要点.docx》由会员分享,可在线阅读,更多相关《基线版本二次开发规范指导文档要点.docx(17页珍藏版)》请在冰豆网上搜索。
基线版本二次开发规范指导文档要点
中电长城发卡机基线版本
二次开发规范
v1.0
拟制:
审核:
批准:
中电长城(长沙)信息技术有限公司
应用开发团队
2015年03月03日
版本记录
修订日期
版本号
修订内容
编写人
备注
2015.03.03
V1.0
新建
目录
1.概述3
2.遵循的原则3
3.一级目录结构介绍3
3.1.Core目录3
3.2.Base目录3
3.3.App目录4
4.平台资源加载优先级4
5.二级目录4
5.1.Flash主框架背景目录4
5.2.Css样式目录5
5.2.1.命名5
5.2.2.引用6
5.3.Local资源目录7
5.3.1.介绍7
5.3.2.目录结构7
5.3.3.资源分类7
5.3.3.1.Image目录(动画、图片)7
5.3.3.2.Report目录8
5.3.3.3.Sound目录8
5.4.Mock目录8
5.5.Tpl目录8
5.6.Trans目录8
6.配置中的命名规则9
6.1.Flexview.xml中name属性命名9
6.2.action.xml中name属性命名9
6.3.tran.xml中TranNO属性命名10
7.常量定义10
8.Session命名空间10
9.统一的session、application变量及页面参数访问10
10.平台组件参数初始化(JAVA类调试)11
概述
二次开发指在现有平台基线版本上,进行具体银行应用项目的具体业务代码实现或者通过评估后,对基线版本中的功能进行丰富和积累。
遵循的原则
遵循的原则主要有三点:
1、Core目录下的变更修改,由平台开发人员进行,应用开发者不能进行修改;
2、Base目录下的变更修改,有基线版本人员在机构讨论确认后,进行积累修改,应用开发者不能进行修改;
3、App目录下的变更修改,则有应用开发人员根据实际需要或从基线中将实际用到的功能模块提取拷贝到app下(实际中,如果功能不变,那么只需要拷贝具体模块下的flexviews.xml文件,目录结构和base目录结构保持一致);或新增新的功能模块。
一级目录结构介绍
Core目录
在实际开发过程中,我们常关注的主要是tpl目录和script目录。
1、tpl目录下主要是我们常常使用到的JSP模板(在编写flexview.xml时会使用到);
2、script目录主要是平台的封装的JS,涉及到主要有OCX控件的调用(如二代证,摄像头等),JS界面效果(如信息提示框),以及一些经常用到的JS对象方法。
3、CSS目录主要是核心提供给模板的css样式。
Base目录
该目录中主要是基线版本整理出来的常用业务功能。
我们主要关注的是cfg目录、css目录、local目录。
1、cfg目录下是平台基线版本的业务功能模块和相关的参数配置信息。
2、Css基线版本中页面样式设置,该目录下的样式文件,大量用途功能模块中的通用页面设置上。
3、Local目录下主要是媒体资源文件
4、Tpl目录主要是进行基线版本开发时,早core目录下的模板无法满足需要,而自己进行模板编写放在该目录下。
5、Trans目录主要是基线版本开发中使用到的子JS或是子JSP,放到该目录下。
App目录
该目录主要是在具体的银行项目开发中使用,除了script目录使用较少外,其他都需要根据实际情况进行编写。
平台资源加载优先级
在实际银行项目开发过程中,我基于平台基线版本进行二次开发,可大大节省重复的开发工作,主要原因是基线中已经提供了实现好的功能模块,我们只需要在流程配置中加载进去即可,但由于各个银行的界面元素风格不同,因此需要进行flexview.xml、css、rpt模板、图片动画等等资源文件按照基线版本中的命名保持一致进行修改,从而达到在不改变功能实现上,通过替换来实现风格的转换。
因此,在app和base两个目录下的资源存在一个优先级别的关系,具体如下:
1、App目录下功能资源文件,最高,例如:
app/cfg/autocfg/业务功能,下的资源文件;
2、App目录下全局资源文件,次之,例如:
app/css;
3、Base目录下功能资源文件,再次之,例如:
base/cfg/autocfg/业务功能,下的资源文件;
4、Base目录下全局资源文件,最低,例如:
base/css;。
资源加载,是由高到底进行,如果最高级有,则使用最高的,没有在降一级加载。
以此类推。
二级目录
Flash主框架背景目录
该目录主要是在app一级目录下,有两个文件在不同项目中需要被替换
VTM.swf
Bg.jpg:
背景图片
Css样式目录
该目录主要是应用的css样式目录,主要有文件:
Manage.css:
主要是后台管理的通用按钮布局样式,及其他。
Common.css:
主要是flexview.xml中的标签通用属性布局、样式。
Newcard.css:
主要是发卡的通用按钮布局样式,及其他。
Style.css:
平台提供的模板样式。
命名
Manage.css、Common.css、Newcard.css下的样式命名,原则使用.文件名_开头,例如:
1、Manage.css使用的是:
/**界面显示3个按钮布局样式位置
.mag_3_butt_+编号(例如.mag_3_butt_1,表示从左往右数,左边第一个按钮位置,
.mag_3_butt_0默认表示按钮隐藏不显示)
**/
.mag_3_butt_0{
top:
840;
left:
250;
}
.mag_3_butt_1{
top:
840;
left:
200;
}
.mag_3_butt_2{
top:
840;
left:
515;
}
.mag_3_butt_3{
top:
840;
left:
824;
}
2、Common.css使用的是:
/**fontName属性字体设置**/
.common_fontName{
fontName:
微软雅黑;
}
3、Newcard.css使用命名是:
/**界面显示3个按钮布局样式位置
.newcard_3_butt_+编号(例如.newcard_3_butt_1,表示从左往右数,左边第一个按钮位置,
.newcard_3_butt_0默认表示按钮隐藏不显示)
**/
.newcard_3_butt_0{
top:
840;
left:
250;
}
.newcard_3_butt_1{
top:
840;
left:
200;
}
.newcard_3_butt_2{
top:
840;
left:
515;
}
.newcard_3_butt_3{
top:
840;
left:
824;
}
引用
这里主要是讲解平台中flexview.xml中如何使用,样式的使用通过class属性进行,举例说明:
1、引用单个样式:
该配置class属性中引用的样式指的是:
common.css文件中的.common_Panel_label样式,
${mon=.common_Panel_label}中的mon指得是css目录下的common.css文件,后面的.common_Panel_label指的是common.css文件设置的样式。
(注意:
根据平台资源加载优先级别来自动决定是app还是base下的)。
2、引用多个样式:
该配置class属性中引用的样式指的是:
css目录下的common.css文件中的两个样式设置,分别是common.css文件中的的.common_error_msg和.common_TextColor_fontName两个样式,“|”用于区分多个样式,
也可以使多个不同文件样式,如下所示:
class="${mon=.common_error_msg|manage=.mag_TextColor_fontName}"
指的是common.css文件中的的.common_error_msg和manage.css文件中的.mag_TextColor_fontName两个样式。
注意:
1、两个样式引用时,样式设置中的属性不可重复,比如:
都有left属性,那么在解析的时候这会出错。
2、根据平台资源加载优先级别来自动决定是app还是base下的)。
Local资源目录
介绍
该目录存在于app、base、core三个一级目录下他的资源则为该一级目录下的全局资源
该目录如果存在于一级目录下的cfg/autocfg下的具体功能模块下,则为该功能模块的资源。
目录结构
该目录存在于app、base、core三个一级目录下,存放的主要是多媒体资源文件(资源加载使用遵循第四章节的“平台资源加载优先级”),主要包括:
flash文件、图片文件、音频文件、rpt模板文件、message.properties信息文件。
目录结构如上图所示:
Local包括两种语言,中文和英文两级目录,这两级目录下的子结构保持一致。
资源分类
Image目录(动画、图片)
该目录下邮两个子目录:
butt和flash
Butt:
他主要存放的是.swf文件格式的按钮。
命名格式:
英文翻译_butt.swf
例如:
checkBalance_butt.swf表示余额查询按钮。
Flash:
他从主要存放的是.swf文件格式的二级底背景和动画。
命名格式:
1、英文翻译_bg.swf表示二级底背景。
例如:
warmNotice_bg.swf表示温馨提示二级底背景框
2、功能_英文翻译_mov.swf表示动画效果。
例如:
function_insertCard_mov.swf表示插卡动画(功能中使用)
main_insertCard_mov.swf表示主界面中的插卡动画。
注意:
1、在image根目录下,必须有一个.txt格式的资源对照表文件。
2、如果有特殊情况需要.jpg等格式的图片文件,则直接存放在image目录下。
Report目录
该目录主要是存在rpt模板文件。
●命名规则:
1、显示输出的rpt模板文件名命名规则:
flexview.xml配置中行的name属性命名.rpt(备注:
flexview.xml配置中行的name属性命名命名规则详见6.1章节)。
2、打印输出的rpt模板文件名命名规则:
flexview.xml配置中行的name属性命名_print.rpt(备注:
flexview.xml配置中行的name属性命名命名规则详见6.1章节)。
●示例说明:
如果flexview.xml中的name属性命名为:
cardboxmag_mainCardboxList_display。
1、显示输出示例:
rpt显示模板文件名:
cardboxmag_mainCardboxList_display.rpt
2、打印输出示例:
rpt显示模板文件名:
cardboxmag_mainCardboxList_display_print.rpt
Sound目录
该目录主要存放的是音频文件。
音频文件命名规则:
英文翻译。
例如:
inputPassWord.wav(请输入输入密码)。
Mock目录
该目录存在于app、base、core根目录下(备注:
目录中的资源则为全局资源,当前使用该方式),也可新建在具体功能模块目录下(备注:
目录中的资源则为模块资源,暂未实现该方式),存放的主要是模拟报文文件,文件名命名和action.xml中的Action标签中的Name属性值一致。
Tpl目录
该目录存在于app、base、core根目录下(则为全局资源),也可新建在具体功能模块目录下(则为模块资源),主要存放为模板文件。
在该目录下可新建分类的模板目录。
可参考core目录结构。
Trans目录
该目录为子JS或子JSP存放目录,它主要有两中方式:
1、app、base、core根目录下
这种方式的为全局性资源,优先级参考第四章
2、具体功能模块目录下
该方式为模块资源,优先级最高,参考第四章。
因此,在实际中,如果没有特殊情况,子JS或子JSP必须使用该种方式
文件命名:
文件名必须flexview.xml中的RIAView标签中的Name属性值一致。
备注:
文件命名和flexview.xml中的RIAView标签中的name属性值一致。
配置中的命名规则
Flexview.xml中name属性命名
命名规则遵循功能名+处理过程(或处理类别)的全英文翻译的原则。
规则:
功能名_处理过程_类型(后面可根据实际需要继续以“_”拼接)。
类型主要有一下几种:
1、_Display(显示信息)
主要适用于显示列表信息,查询信息,如:
查询列表信息,余额信息等等
示例1:
cardboxmag_mainCardboxList_display
cardboxmag指功能模块
mainCardboxList指主界面卡箱信息列表
display指类型为显示
2、_Error(错误信息)
主要适用于显示错误信息,如:
错误提示信息显示配置
示例2:
cardboxmag_mainCardboxList_errorr
cardboxmag指功能模块
mainCardboxList指主界面卡箱信息列表
errorr指类型,为错误
3、Succeed(成功信息)
主要适用于显示错误信息,如:
错误提示信息显示配置
示例2:
cardboxmag_mainCardboxList_succeed
cardboxmag指功能模块
mainCardboxList指主界面卡箱信息列表
succeed指类型,为成功
4、_Wait(等待处理)
主要适用于正在处理中的情况,如:
正在处理请稍后
示例2:
cardboxmag_mainCardboxList_wait
cardboxmag指功能模块
mainCardboxList指主界面卡箱信息列表
wait指类型,为处理等待
action.xml中name属性命名
命名规则遵循功能名+处理过程(或处理类别)的全英文翻译的原则。
规则:
1、功能名_处理过程(注意,处理过程英文翻译的第一个字母必须大写)。
示例2:
cardboxmag_FindCardboxList查询卡箱信息action
cardboxmag指功能模块
FindCardboxList指处理过程
tran.xml中TranNO属性命名
TranNo属性命名必须和action中的Name属性一致,否则无法调用该配置文件中的处理过程
常量定义
类定义:
com.gwi.abmc.global.AppConstant.java
说明:
将应用相关的所有字符串常量定义在此类中,可减少代码维护成本,同时增强代码可阅读性。
示例:
//回单主键内部字段分隔符
publicstaticfinalStringKEY_SPLITER="^";
//默认超级管理员用户名、密码及权限(将应用配置参数作为常量来引用)
publicstaticfinalStringMANAGER_DEFAULT_ID=AppParamsHelper.getAppParam("appManagerNo");
publicstaticfinalStringMANAGER_DEFAULT_PWD=AppParamsHelper.getAppParam("appManagerPwd");
有了以上定义,应用中回单主键内部字段分隔符”^”的使用,可通AppConstant.KEY_SPLITER来引用,等等。
Session命名空间
类定义:
com.gwi.abmc.global.SessionNamespace.java
说明:
Session变量名定义,应用中与业务相关的所有Session名称定义在此,应用中对Session的访问,请使用此类中定义的名称进行访问。
示例:
SessionNamespace.java中定义:
publicstaticfinalStringUSER_NAME="USERNAME";
应用环节:
1.java,jsp中引用
示例:
Session.getAttribute(SessionNamespace.USER_NAME);
Session.setAttribute(SessionNamespace.USER_NAME,somevalue);
2.xml配置中引用(需平台支持)
示例:
value=”${$s.USER_NAME}”
统一的session、application变量及页面参数访问
类定义:
com.gwi.abmc.util.ActHelper.java
说明:
提供统一的session、application变量及页面参数访问方法,一般在action中使用。
初始化:
方试1:
ActHelperactHelper=newActHelper(IModel,OModel);
方试2:
ActHelperactHelper=newActHelper(this);
方法说明:
1.获取终端信息
publicJSONObjectgetTermInfo()
2.获取页面提交数据
publicStringgetParameter(Stringkey)
3.获取Flex页面提交数据
publicStringgetFlexParameter(Stringflexinputid)
4.获取Flex页面提交数据
publicStringgetFlexParameter(intflexinputid)
5.获取Session对象
publicHttpSessiongetSession()
6.获取Request对象
publicHttpServletRequestgetRequest()
7.获取Application对象
publicServletContextgetApplication()
8.获取Session对象
publicHttpSessiongetSession()
9.设置Session变量
publicvoidset(Stringkey,Objectval)
10.获取Session变量
publicObjectget(Stringkey)
平台组件参数初始化(JAVA类调试)
类定义:
test.TestEnvInit.java
功能说明:
1.初始化平台组件参数,以便在待测试的java类中引用相关平台组件功能,否则会因平台组件未初始参数而抛异常,导致无法运行java程序进行测试
2.可在此定义测试数据常量,方便测试数据统一管理
使用说明:
初始化平台组件参数分为三部分:
1.rtlconf参数配置
2.app参数配置
3.Errors配置
以上只要在类中更改配置文件路径即可,对应的配置文件分别为rtlconf.properties,app.properties和errors.xml
在待测试的java类中的Main方法第一行加入以下代码:
newTestEnvInit();