金蝶BOS进阶培训_Web框架_第1页
金蝶BOS进阶培训_Web框架_第2页
金蝶BOS进阶培训_Web框架_第3页
金蝶BOS进阶培训_Web框架_第4页
金蝶BOS进阶培训_Web框架_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

金蝶培训部:BOSWeb应用领域金蝶软件(中国)有限公司,金蝶BOS进阶培训,WAF框架,了解BOSWeb应用的开发基础熟悉Waf界面模型掌握常用业务控件的使用掌握界面业务逻辑开发Validater、Converter、Action、ELResolver、对象注入和拦截器掌握集成基础服务熟悉Waf配置文件的使用,学习目标,课程总体介绍,JavaScript基础,BOS云开发,BOS门户开发,Ext.js框架原理,JSF框架原理,AOM框架基础,BOSWeb开发,EASWeb开发,Waf框架开发,Web设计器,工作流配置,BOSWeb应用的开发基础Waf界面模型常用业务控件的应用界面业务逻辑开发集成基础服务Waf配置文件的使用,目录,BOSWeb开发属于BOS6.3起主推的一种开发模式,能够快速的满足企业Web2.0应用、企业云开发平台等模式的需求,而且同时具有BOSGUI开发的工具、模式、效率,能够快速的满足任何一个企业Web应用开发需求目前的BOSWeb开发已经满足EAS协同、供应链、HR、BOS云平台、北研电子政务、上研文档知识管理等多个领域的需求,并且在不断的突破新领域。,BOSWeb开发概述,BOSWeb开发路线图,Web基础,Java基础,BIM基础,Web进阶,JS/Ajax框架,JSF/AOM,Web设计器,Waf框架,Web业务开发,BOS服务组装,BOS云服务开发,企业云整合,入门,中级开发,高级开发,BOS进阶培训流程,Ext.js(Ajax)框架,Jsf框架原理,AOM框架基础,JavaScript基础,Waf应用(Web设计器),BOSWeb应用的开发基础Waf界面模型常用控件的使用业务扩展开发集成基础服务Waf配置文件的使用,目录,Waf界面模型简介,Waf界面模型是对常用的界面表示的结构和行为的抽象。在界面开发中使用Waf界面模型,有利于复用模型提供的功能,快速开发界面规范界面接口定义,便于开发和维护统一界面风格等Waf界面类型列表界面编辑界面树型界面过滤界面,列表界面简介,列表界面原理,ListBean提供基本功能:新增编辑查看删除通用过滤刷新退出,列表界面接口定义,getQueryPK()指定查询对象主键getBizInterface()指定业务控制器getEditBeanName()指定编辑界面Bean名称getEditUrl()指定编辑界面页面名称,编辑界面简介,编辑界面原理,EditBean提供基本功能:保存提交删除复制上拉生成下推生成打印退出,编辑界面接口定义,createNewModel()创新业务对象(用于新增单据)getBizInterface()指定业务控制器getSelectors(),可选指定获取业务对象的哪些属性,树型界面简介,树型界面简介,TreeDetailListBean提供基本功能:新增组别修改组别查看组别删除组别,树型界面接口定义,getParentPropertyName指定业务对象的父对象属性名称createGroupNewModel()创新组别对象(用于新增组别)getTreeInterface指定组别对象控制器getGroupEditBeanName()指定组别编辑界面Bean名称getGroupEditUrl()指定组别编辑界面页面名称,过滤界面简介,过滤界面包括通用过滤界面自定义过滤界面嵌入过滤界面,通用过滤界面简介,自定义过滤界面简介,自定义过滤界面应用,自定义过滤页面提供一个继承monquery.UserQueryBean的ManagedBean,假如为MyUserQueryBean,同时还有相应的Facelets视图,myUserQuery.xhtml;在序时簿ManagedBean里,覆盖getUserQueryView()方法,返回上面的Facelets视图路径,例如:OverrideprotectedStringgetUserQueryView()return/custom/myUserQuery.xhtml;,嵌入过滤界面简介,嵌入过滤界面应用,嵌入过滤界面提供一个继承monquery.UserQueryBean的ManagedBean,假如为MyUserQueryBean,同时还有相应的Facelets视图,myUserQuery.xhtml;在列表界面添加容器控件,用于嵌入过滤界面修改序时簿ManagedBean重载getEmbededUserQueryView(),指定上述页面路径OverrideprotectedStringgetEmbededUserQueryView()return/custom/myEmbedUserQuery.xhtml;重载getEmbededUserQueryPanel()方法,指定容器控件OverrideprotectedUIPanelgetEmbededUserQueryPanel()returnembedUserQueryPanel;,BOSWeb应用的开发基础Waf界面模型常用控件的使用业务扩展开发集成基础服务Waf配置文件的使用,目录,Waf常用控件简介,AOM基础控件TextFieldTestAreaNumberFieldButtonCheckBoxComboDateFieldPanelAbsoluteLayoutBorderLayoutToolbarTreeDataGridEditDataGrid封装控件LabelContainerEnumComboPromptBox,UIEnumCombo控件简介,xHtml页面属性说明type:指定BOS枚举类型value:绑定MBean模型属性,UIPromptBox控件通用F7,xHtml页面这里value是指绑定服务器对应ManagedBean的属性,queryInfo是指对应的查询query,filterInfo是为queryInfo设置的默认过滤条件,其他属性设置是否可以为空,宽度,是否支持多选。,UIPromptBox控件自定义F7,xHtml页面value是指绑定服务器对应ManagedBean的属性,viewUrl是自己开发的页面,供f7选择使用,converter是自己开发的converter,把选回的对象的id与绑定的value进行转换,如果绑定的value就是对象的id,可以不用converter.自定义的F7,后台ManagedBean需要继承AbstractKDPromptBean或者自己实现IKDPromptBean接口,定义的如:publicclassProcessClassBeanextendsAbstractKDPromptBeanimplementsjava.io.Serializable,Datagrid控件简介,xHtml页面,Datagrid控件简介,属性说明paged:是否开启分页功能showRowNumber:是否显示行数列honorViewState:是否提交viewState参数到服务器端toolBarPosition:工具条位置sync:是否同步处理binding:绑定MBean数据对象var:读取dataGrid的数据时,会去遍历value的集合,遍历的过程会得到每一行的数据,var就是代表每一行数据的变量OutputColumn简介用于定义表头信息value:绑定数据header:列显示标签文字,EditDatagrid控件简介,xHtml页面,BOSWeb应用的开发基础Waf界面模型常用控件的使用业务扩展开发集成基础服务Waf配置文件的使用,目录,数据校验与转换,界面数据校验和转换,分为三个层次,如下图,数据校验与转换,面向组件的客户端校验客户端校验的发生在客户端,发生时机是Form提交时,如果校验不通过,则不会提交From,不产生服务器端交互。面向组件的Validator与ConverterWAF提供了常规的校验器与转换器的默认实现,且表现形式可自行扩展。Converter的getAsObject行为发生在ApplyRequestValues阶段,getAsText的行为发生在RenderResponse阶段。Validator的行为发生在服务器端的ProcessValidations阶段。面向数据的校验与转换由于JSF的校验和转换是针对组件进行的,校验器和转换器在发生作用的时候,只能获取到单个组件的值,而此时,数据还未被绑定到ManagedBean,因此,在校验器和转换器中无法完成面向数据的校验与转换。这种情况下,可以在服务端的Action中进行校验和转换的逻辑。,Validator简介,Validator一般在控件中使用,主要是对控件的录入值进行合法性校验。开发人员添加Validator子类,实现validate接口。publicinterfaceValidatorextendsEventListenerpublicabstractvoidvalidate(FacesContextfacescontext,UIComponentuicomponent,Objectobj)throwsValidatorException;,Converter简介,Converter一般在控件中使用,主要是把界面上的值和后台bean里定义的属性做一个转换,比如你在自定义f7中界面上获取的一般是对象的id或者是一个包含id的arraylist,后台bean你不想绑定id或者id的arraylist,因为这样值也不容易恢复,这个时候你就需要定义一个converter。,Converter例子,publicclassSingleAdminConverterimplementsConverterpublicObjectgetAsObject(FacesContextcontext,UIComponentcomponent,Stringvalue)if(value=null|.equals(value)returnnull;AdminOrgUnitInfoadminInfo=null;tryContextctx=WafContext.getInstance().getContext();IAdminOrgUnitiAdmin=AdminOrgUnitFactory.getLocalInstance(ctx);adminInfo=iAdmin.getAdminOrgUnitInfo(newObjectUuidPK(value);catch(Exceptionex)ex.printStackTrace();returnnull;returnadminInfo;publicStringgetAsString(FacesContextcontext,UIComponentcomponent,Objectvalue)if(value=null)returnnull;returnvalue.toString();,Converter例子,可以看到converter需要集成Converter接口,实现两个方法getAsObject和getAsString,主要的是方法getAsObject,在这个方法你需要把从控件中获取的值转换为你后台bean绑定的对象。在这里,它把id转为AdminOrgUnitInfo。然后在你对应的后台bean定义converter如AccessibleprivateSingleAdminConverteractAdminConverter=newSingleAdminConverter();这个actAdminConverter就可以使用了,在具体的控件上设置converter为这个converter即可,如,Action简介,类似于BOSGUI下,WAF提供了WebAction支持对于WebAction提供完善的拦截机制,包括before、after、onException、onFinallyWebAction的实现使用动态代理机制,基于此机制,可以在Action层面扩展面向方面的一些业务特性。用户只需要关注该Action的业务逻辑,在MBean类中实现,ELResolver简介,如果需要拦截EL表达式中对象属性访问,可以实现一个自己的ELResolver,然后通过ApplicationListener注册到AOM中。例如动态值对象访问,DynamicObjectValueResolver。开发人员添加ELResolver子类,实现以下接口。publicabstractclassELResolverpublicabstractObjectgetValue(ELContextelcontext,Objectobj,Objectobj1)throwsNullPointerException,PropertyNotFoundException,ELException;publicabstractClassgetType(ELContextelcontext,Objectobj,Objectobj1)throwsNullPointerException,PropertyNotFoundException,ELException;publicabstractvoidsetValue(ELContextelcontext,Objectobj,Objectobj1,Objectobj2)throwsNullPointerException,PropertyNotFoundException,PropertyNotWritableException,ELException;publicabstractbooleanisReadOnly(ELContextelcontext,Objectobj,Objectobj1)throwsNullPointerException,PropertyNotFoundException,ELException,对象注入简介,Web开发平台提供了Inject标签来实现依赖注入。默认方式提供了对于FacesContext、Logger、ManagedBean等资源的注入,另外,可自行进行扩展注入任何的资源,平台框架内部扩展了BOSObjectInfo和IBOSBizCtrl数据类型的注入扩展。例如:publicabstractclassAbstractTestBillEditUIBeanextendscom.kingdee.bos.waf.winlet.edit.EditBeanIBOSBizCtrlprotectedcom.kingdee.eas.custom.ITestBillservice;Inject(custom.TestBillEntryBean)protectedTestBillEntryBeantestBillEntryBean;publicAbstractTestBillEditUIBean()super();,拦截器简介,用户日志/用户监控/权限检查等业务服务,要求在UI层具有非直接耦合的服务绑定机制。,拦截器JSF生命周期拦截,JSF的六个生命周期,拦截器WebAction拦截,WebAction实例统一由WebActionFactory采用动态代理机制创建。基于动态代理机制,可以实现对processAction方法的拦截,拦截的业务逻辑可通过Service接口方式与WebAction绑定。WebAction拦截设计类图,拦截器ManagedBean生命周期拦截,标准JSF提供的PostConstruct标准的JSF提供了PostConstruct标注,作用在ManagedBean的实例被创建后。AOM提供的扩展AOM对ManagedBean的生命周期做了扩展,通过事件方式触发,目前支持如下事件:MANAGED_BEAN_CREATEDMANAGED_BEAN_DESTROYED,BOSWeb应用的开发基础Waf界面模型常用控件的使用业务扩展开发集成基础服务Waf配置文件的使用,目录,集成基础服务权限,集成权限服务需定义权限项与WebAction绑定开发步骤BOS工具:定义并发布单据定义权限项发布权限元数据文件生成子系统树部署(可选)EAS系统平台同步权限项数据分配权限,集成基础服务日志,集成日志服务需定义日志项与实体方法绑定开发步骤BOS工具:定义并发布单据定义日志项发布日志元数据文件生成子系统树部署(可选)EAS系统平台同步日志项数据,集成基础服务套打,发布业务单元会自动生成套打格式文件并实现以下接口:getTDQueryPK(),指定用于套打的查询对象作为数据源getTDTemplateName(),指定套打模板名称开发步骤BOS工具:单据添加按钮与打印功能(reportAction)绑定发布单据生成子系统树部署(可选)EAS系统平台定义套打格式,集成基础服务编码规则,单据集成编码规则服务只需定义并启用编码规则开发步骤BOS工具:定义并发布单据生成子系统树部署(可选)EAS系统平台定义并启用编码规则,集成基础服务BOTP,单据集成BOTP规则服务只需定义并启用BOTP规则开发步骤BOS工具:单据添加按钮与上拉、下推功能绑定发布单据生成子系统树部署(可选)EAS系统平台定义并启用BOTP规则,集成基础服务工作流,开发步骤(与GUI开发过程类似)BOS工具:定义并发布单据生成子系统树部署定义并启用工作流,BOSWeb应用的开发基础Waf界面模型常用控件的使用业务扩展开发集成基础服务Waf配置文件的使用,目录,配置文件web.xml,WEB-INFweb.xml是Waf最基础的配置文件,配置了一些基础参数,业务开发者可不关注。AOM的基本参数CAS认证的参数配置FacesServletMappingFacesServlet*.jsf说明Web服务器解析文件后缀名为.jsf的请求。Faceslet相关扩展配置facelets.LIBRARIES/WEB-INF/taglib/waf.taglib.xml定义了Waf自定义Faceslet组件的扩展配置。支持多个扩展配置文件,以“;”分割。如果业务系统希望定义自己的faceslet组件,可以由Waf维护者在此加上相应的扩展文件即可。,配置文件waf.taglib.xml,WEB-INFtaglibwaf.taglib.xml描述了Waf自定义Faceslet组件的相关内容,组件命名空间为例如tag定义如下,billListToolbar./components/billList-toolbar.xhtml则用法为:,配置文件operamasks.xml,WEB-INFoperamasks.xml是AOM的基础配置文件,文件名是固定的。文件配置了View跟ManagedBean之间的默认映射配置。默认为:*#ViewBean对于特殊的View与ManagedBean的绑定,可以增加view-mapping节点指定,可以指定某一包名下的View与ManagedBean的映射,例如:/cp/*com.kingdee.eas.cp.#ViewBean这个映射可以由建立Apusic标准工程的时候配置自动生成,详见开发规范这一章节。,配置文件waf-config.xml,Waf系统定义的配置文件,提供了ContextProvider、多语言适配规则、拦截器(登录、异常处理等)相关配置。业务开发者可不需关注此配置。,配置文件winlet-config-ext.xml及winlet-config.xml,为了满足多个业务部门开发不同的业务系统,把各自开发的Winlet配置文件管理起来,winlet-config-ext.xml提供了这一协同管理的能力。例如:/WEB-INF/hr-winlet-c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论