




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
金蝶培训部:BOS Web应用领域 金蝶软件(中国)有限公司,金蝶BOS进阶培训,WAF框架,了解BOS Web应用的开发基础 熟悉Waf界面模型 掌握常用业务控件的使用 掌握界面业务逻辑开发 Validater、 Converter 、Action、ELResolver、对象注入和拦截器 掌握集成基础服务 熟悉Waf配置文件的使用,学习目标,课程总体介绍,JavaScript基础,BOS云开发,BOS 门户开发,Ext.js框架原理,JSF框架原理,AOM框架基础,BOSWeb开发,EAS Web开发,Waf框架开发,Web设计器,工作流配置,BOS Web应用的开发基础 Waf界面模型 常用业务控件的应用 界面业务逻辑开发 集成基础服务 Waf配置文件的使用,目录,BOS Web开发属于BOS 6.3起主推的一种开发模式,能够快速的满足企业Web2.0应用、企业云开发平台等模式的需求,而且同时具有BOS GUI开发的工具、模式、效率,能够快速的满足任何一个企业Web应用开发需求 目前的BOS Web开发已经满足EAS 协同、供应链、HR、BOS云平台、北研电子政务、上研文档知识管理等多个领域的需求,并且在不断的突破新领域。,BOS Web开发概述,BOS Web开发路线图,Web基础,Java基础,BIM基础,Web进阶,JS/Ajax框架,JSF/AOM,Web设计器,Waf框架,Web业务开发,BOS服务组装,BOS云服务开发,企业云整合,入门,中级开发,高级开发,BOS 进阶培训流程,Ext.js(Ajax)框架,Jsf框架原理,AOM框架基础,JavaScript基础,Waf应用(Web设计器),BOS Web应用的开发基础 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视图路径,例如: Override protected String getUserQueryView() return “/custom/myUserQuery.xhtml “; ,嵌入过滤界面 简介,嵌入过滤界面 应用,嵌入过滤界面 提供一个继承monquery.UserQueryBean的ManagedBean,假如为MyUserQueryBean,同时还有相应的Facelets视图,myUserQuery.xhtml; 在列表界面添加容器控件,用于嵌入过滤界面 修改序时簿ManagedBean 重载getEmbededUserQueryView (),指定上述页面路径 Override protected String getEmbededUserQueryView() return “/custom/myEmbedUserQuery.xhtml“; 重载getEmbededUserQueryPanel()方法,指定容器控件 Override protected UIPanel getEmbededUserQueryPanel() return embedUserQueryPanel; ,BOS Web应用的开发基础 Waf界面模型 常用控件的使用 业务扩展开发 集成基础服务 Waf配置文件的使用,目录,Waf常用控件 简介,AOM基础控件 TextField TestArea NumberField Button CheckBox Combo DateField Panel AbsoluteLayout BorderLayout Toolbar Tree DataGrid EditDataGrid 封装控件 LabelContainer EnumCombo PromptBox,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接口 ,定义的如: public class ProcessClassBean extends AbstractKDPromptBean implements java.io.Serializable,Datagrid控件 简介,xHtml页面 ,Datagrid控件 简介,属性说明 paged:是否开启分页功能 showRowNumber:是否显示行数列 honorViewState:是否提交viewState参数到服务器端 toolBarPosition:工具条位置 sync:是否同步处理 binding:绑定MBean数据对象 var:读取dataGrid的数据时,会去遍历value的集合,遍历的过程会得到每一行的数据,var就是代表每一行数据的变量 OutputColumn简介 用于定义表头信息 value:绑定数据 header:列显示标签文字,EditDatagrid控件 简介,xHtml页面 ,BOS Web应用的开发基础 Waf界面模型 常用控件的使用 业务扩展开发 集成基础服务 Waf配置文件的使用,目录,数据校验与转换,界面数据校验和转换,分为三个层次,如下图,数据校验与转换,面向组件的客户端校验 客户端校验的发生在客户端,发生时机是Form提交时,如果校验不通过,则不会提交From,不产生服务器端交互。 面向组件的Validator与Converter WAF提供了常规的校验器与转换器的默认实现,且表现形式可自行扩展。 Converter的getAsObject行为发生在ApplyRequestValues阶段,getAsText的行为发生在RenderResponse阶段。 Validator的行为发生在服务器端的ProcessValidations阶段。 面向数据的校验与转换 由于JSF的校验和转换是针对组件进行的,校验器和转换器在发生作用的时候,只能获取到单个组件的值,而此时,数据还未被绑定到ManagedBean,因此,在校验器和转换器中无法完成面向数据的校验与转换。 这种情况下,可以在服务端的Action中进行校验和转换的逻辑。,Validator 简介,Validator一般在控件中使用,主要是对控件的录入值进行合法性校验。 开发人员添加Validator子类,实现validate接口。 public interface Validator extends EventListener public abstract void validate(FacesContext facescontext, UIComponent uicomponent, Object obj) throws ValidatorException; ,Converter 简介,Converter一般在控件中使用,主要是把界面上的值和后台bean里定义的属性做一个转换,比如你在自定义f7中界面上获取的一般是对象的id或者是一个包含id的arraylist,后台bean你不想绑定id或者id的arraylist,因为这样值也不容易恢复,这个时候你就需要定义一个converter。,Converter 例子,public class SingleAdminConverter implements Converter public Object getAsObject(FacesContext context, UIComponent component, String value) if (value = null | “.equals(value) return null; AdminOrgUnitInfo adminInfo = null ; try Context ctx = WafContext.getInstance().getContext(); IAdminOrgUnit iAdmin = AdminOrgUnitFactory.getLocalInstance(ctx); adminInfo = iAdmin.getAdminOrgUnitInfo(new ObjectUuidPK(value); catch(Exception ex) ex.printStackTrace(); return null; return adminInfo; public String getAsString(FacesContext context, UIComponent component, Object value) if(value=null) return null; return value.toString(); ,Converter 例子,可以看到converter需要集成Converter接口,实现两个方法getAsObject和getAsString,主要的是方法getAsObject,在这个方法你需要把从控件中获取的值转换为你后台bean绑定的对象。在这里,它把id转为AdminOrgUnitInfo。 然后在你对应的后台bean定义converter 如Accessible private SingleAdminConverter actAdminConverter = new SingleAdminConverter(); 这个actAdminConverter就可以使用了,在具体的控件上设置converter为这个converter即可,如 ,Action 简介,类似于BOS GUI下,WAF提供了Web Action支持 对于Web Action提供完善的拦截机制,包括before、after、onException、onFinally WebAction的实现使用动态代理机制,基于此机制,可以在Action层面扩展面向方面的一些业务特性。 用户只需要关注该Action的业务逻辑,在MBean类中实现,ELResolver 简介,如果需要拦截EL表达式中对象属性访问,可以实现一个自己的ELResolver,然后通过 ApplicationListener注册到AOM中。例如动态值对象访问,DynamicObjectValueResolver。 开发人员添加ELResolver子类,实现以下接口。 public abstract class ELResolver public abstract Object getValue(ELContext elcontext, Object obj, Object obj1) throws NullPointerException, PropertyNotFoundException, ELException; public abstract Class getType(ELContext elcontext, Object obj, Object obj1) throws NullPointerException, PropertyNotFoundException, ELException; public abstract void setValue(ELContext elcontext, Object obj, Object obj1, Object obj2) throws NullPointerException, PropertyNotFoundException, PropertyNotWritableException, ELException; public abstract boolean isReadOnly(ELContext elcontext, Object obj, Object obj1) throws NullPointerException, PropertyNotFoundException, ELException ,对象注入 简介,Web开发平台提供了Inject标签来实现依赖注入。默认方式提供了对于FacesContext、Logger、ManagedBean等资源的注入,另外,可自行进行扩展注入任何的资源,平台框架内部扩展了BOSObjectInfo和IBOSBizCtrl数据类型的注入扩展。 例如: public abstract class AbstractTestBillEditUIBean extends com.kingdee.bos.waf.winlet.edit.EditBean IBOSBizCtrl protected com.kingdee.eas.custom.ITestBill service; Inject(“custom.TestBillEntryBean“) protected TestBillEntryBean testBillEntryBean; public AbstractTestBillEditUIBean() super(); ,拦截器 简介,用户日志/用户监控/权限检查等业务服务,要求在UI层具有非直接耦合的服务绑定机制。,拦截器 JSF生命周期拦截,JSF的六个生命周期,拦截器 WebAction拦截,WebAction实例统一由WebActionFactory采用动态代理机制创建。 基于动态代理机制,可以实现对processAction方法的拦截,拦截的业务逻辑可通过Service接口方式与WebAction绑定。 WebAction拦截设计类图,拦截器 ManagedBean生命周期拦截,标准JSF提供的PostConstruct 标准的JSF提供了PostConstruct标注,作用在ManagedBean的实例被创建后。 AOM提供的扩展 AOM对ManagedBean的生命周期做了扩展,通过事件方式触发,目前支持如下事件: MANAGED_BEAN_CREATED MANAGED_BEAN_DESTROYED,BOS Web应用的开发基础 Waf界面模型 常用控件的使用 业务扩展开发 集成基础服务 Waf配置文件的使用,目录,集成基础服务 权限,集成权限服务需定义权限项与WebAction绑定 开发步骤 BOS工具: 定义并发布单据 定义权限项 发布权限元数据文件 生成子系统树 部署(可选) EAS系统平台 同步权限项数据 分配权限,集成基础服务 日志,集成日志服务需定义日志项与实体方法绑定 开发步骤 BOS工具: 定义并发布单据 定义日志项 发布日志元数据文件 生成子系统树 部署(可选) EAS系统平台 同步日志项数据,集成基础服务 套打,发布业务单元会自动生成套打格式文件并实现以下接口: getTDQueryPK(),指定用于套打的查询对象作为数据源 getTDTemplateName(),指定套打模板名称 开发步骤 BOS工具: 单据添加按钮与打印功能(reportAction)绑定 发布单据 生成子系统树 部署(可选) EAS系统平台 定义套打格式,集成基础服务 编码规则,单据集成编码规则服务只需定义并启用编码规则 开发步骤 BOS工具: 定义并发布单据 生成子系统树 部署(可选) EAS系统平台 定义并启用编码规则,集成基础服务 BOTP,单据集成BOTP规则服务只需定义并启用BOTP规则 开发步骤 BOS工具: 单据添加按钮与上拉、下推功能绑定 发布单据 生成子系统树 部署(可选) EAS系统平台 定义并启用BOTP规则,集成基础服务 工作流,开发步骤(与GUI开发过程类似) BOS工具: 定义并发布单据 生成子系统树 部署 定义并启用工作流,BOS Web应用的开发基础 Waf界面模型 常用控件的使用 业务扩展开发 集成基础服务 Waf配置文件的使用,目录,配置文件 web.xml,WEB-INFweb.xml 是Waf最基础的配置文件,配置了一些基础参数,业务开发者可不关注。 AOM的基本参数 CAS认证的参数配置 Faces Servlet Mapping Faces Servlet *.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组件的相关内容,组件命名空间为/jsf/biz,组件用法示例如下: 例如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-config.xml /WEB-INF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省寻甸回族彝族自治县2025年上半年事业单位公开遴选试题含答案分析
- 拎包入住房屋租赁合同
- 河北省肃宁县2025年上半年公开招聘城市协管员试题含答案分析
- 2025标牌规范建设项目安全管理培训合同
- 2025年度琴行教师学生安全教育与事故处理合同
- 2025版石灰矿产品买卖及资源开发合同
- 2025车库租赁合同附带车位使用权及车位改造工程
- 2025房产抵押贷款合同范本:抵押物价值评估与处置程序
- 2025版外墙真石漆施工与施工图纸规范合同
- 海南省文昌市2025年上半年公开招聘辅警试题含答案分析
- 安全生产行政执法要点及文书制作实务培训课件
- 人教版小学数学四年级上册全册教案
- 2025年中国智慧养殖行业市场占有率及投资前景预测分析报告
- 电影院安全生产与安全管理规定制度
- 废气处理合同协议
- 镁铝合金行业前景
- 煤炭工业矿井工程建设项目设计文件编制标准
- 2025-2030中国余热回收行业市场现状供需分析及投资评估规划分析研究报告
- 无人机物流配送服务手册
- 深度学习:从入门到精通(微课版)全套教学课件
- 见证取样送检计划方案
评论
0/150
提交评论