《金蝶BOS开发工程师基础认证培训Web框架》由会员分享,可在线阅读,更多相关《金蝶BOS开发工程师基础认证培训Web框架(82页珍藏版)》请在金锄头文库上搜索。
1、金蝶BOS Web框架金蝶软件(中国)有限公司P2版权所有 1993-2006 金蝶软件(中国)有限公司P2目录目录n总体架构nJSFnFaceletsnExtnAOMnWAFnWeb开发调试P3版权所有 1993-2006 金蝶软件(中国)有限公司P3总体架构n金蝶开发平台基于aom开发,aom的底层技术为JSF,表现 层采用ext和FaceletsP4版权所有 1993-2006 金蝶软件(中国)有限公司P4JSF是什么nJavaServer Faces (JSF, 或者 “Faces”)是一个构建Java Web 应用的UI 框架;它基于Java社区流程 (JCP) 开发,并 且成为J2
2、EE 的一个组成部分。Faces 的一个主要目标是为 Java Web 应用开发领域带来RAD 风格的应用开发,就像 Microsoft Visual Basic 和Borland Delphi 一样。nJSF 提供一系列标准部件 (按钮、超链接、复选框等等), 一个创建定制组件的模型,以及在服务器端处理客户端产 生事件的方式,并且有良好的工具支持。你可以同步UI组 件和相关对象的值,而不必编辑太多令人生厌的代码。n所有的JSF 应用都构建于Servlet API 之上,使用HTTP 进 行通信,并且使用JSP.之类的显示技术 P5版权所有 1993-2006 金蝶软件(中国)有限公司P5JS
3、F与Struts区别P6版权所有 1993-2006 金蝶软件(中国)有限公司P6JSF包含什么P7版权所有 1993-2006 金蝶软件(中国)有限公司P7JSF生命周期P8版权所有 1993-2006 金蝶软件(中国)有限公司P8JSF生命周期n构建复原组件树视图(RestoreViewPhase) nJSF 组件树用来构建和维护页的状态和事件。对于每个会 话,将会构建一次树,并且当用户返回到该页时复用该树 。在此阶段的末尾,当前请求的 FacesContext 实例的根属 性反映由先前的“Faces 响应”生成的视图的已保存配置(如 果有的话)。 P9版权所有 1993-2006 金蝶软
4、件(中国)有限公司P9JSF生命周期n应用请求值 n请求处理生命周期这一阶段的目的是使当前请求中包括的 信息更新各组件的当前值(如参数、标题和 cookie)更新 到相应组件树中的每个组件。从这里我们可以看到,从客 户端发过来的请求是么种意义上的纯文本信息,而UI组件 对应的是java实体,这里必然就存在了数据格式转换的问题 。所以,在整个生命周期中,这个地方就成了数据转换发 生的特定阶段(如:数据、日期显示格式)。P10版权所有 1993-2006 金蝶软件(中国)有限公司P10JSF生命周期n处理验证 n为保证上一个阶段的数据正确,特定抽取了这个阶段作为 数据校验。在这里作为创建此请求的视
5、图的一部分,可以 为每个组件注册零个或多个验证器实例。另外,组件类自 身也可以在它们的 validate() 方法中实现验证逻辑。在此阶 段的末尾,会完成所有配置的验证。 P11版权所有 1993-2006 金蝶软件(中国)有限公司P11JSF生命周期n更新模型值 n如果到达了请求处理生命周期的这一阶段,就意味着入局 请求根据所执行的验证在语法和语义上都是有效的,且组 件树中每一组件的本地值都已被更新,这一阶段主要通过 调用组建树的每个UI组件的processUpdates()方法,递 归更新每个组件树对应的应用程序的模型数据 P12版权所有 1993-2006 金蝶软件(中国)有限公司P12
6、JSF生命周期n调用应用程序 n如之前构建复原视图时所述,如果当前请求的视图是根据 先前请求保存的状态信息重新构造的,则 JSF实现就能够 确保通过在此 Web 应用程序的“应用程序”对象上调用 getActionListener。P13版权所有 1993-2006 金蝶软件(中国)有限公司P13JSF生命周期n呈现响应n此阶段同时完成两项任务:使响应呈示给客户机,以及使 响应的状态得到保存以供后续请求处理之用。在一个阶段 中同时处理这两项任务的原因是在 JSP 应用程序中呈示响 应的行为会导致在呈示页面时构建视图。因此,要在视图 的状态被呈示给客户机之后才能保存该状态。P14版权所有 199
7、3-2006 金蝶软件(中国)有限公司P14为什么要选用JSFn对于RAD 工具的四个层次, JavaServer Faces 定义了其 中3 个:一个基础组件架构,一个标准的UI 部件集,以及 一个应用基础架构。JSF 的组件架构定义了一个通用的方 式来建立UI 部件 nJavaServer Faces 有一个特定的目标:使web 开发更快更 容易。它允许开发人员以组件,事件,Backing Bean 以及 它们之间的交互来进行思考,而不是基于请求,响应和标 记。换句话说,它掩盖了Web 开发的大量的复杂性,使开 发人员能够集中于他们最擅长的事情:开发应用系统。P15版权所有 1993-20
8、06 金蝶软件(中国)有限公司P15典型例子nHello,worldP16版权所有 1993-2006 金蝶软件(中国)有限公司P16FaceletsnFacelets 非常适合 JSF,专为 JSF 设计的视图技术nFacelets是用来建立JSF应用程序时的一个可供选择的表现 层技术。Facelets提供了一个强有 力的模板化系统,让你 使用HTML样式的模板来定义JSF的表现层,减少了组件整 合进表现层时候冗余的代码,而不需要一个web容器 P17版权所有 1993-2006 金蝶软件(中国)有限公司P17FaceletsnFacelets 有以下吸引人的特性:n模板化(像 Tiles)
9、 n复合组件 n定制的逻辑标记 n表达式语言 n对设计师友好的页面开发 n创建组件库 P18版权所有 1993-2006 金蝶软件(中国)有限公司P18用 Facelets 进行模板化 (定义模版)n创建 layout.xhtml 页面。 n定义 Facelet 的命名空间,导入对 Facelets 的使用。 n用 ui:insert 标记定义页面的逻辑区域。 n用纯文本和 ui:include 标记定义合理的默认值 P19版权所有 1993-2006 金蝶软件(中国)有限公司P19用 Facelets 进行模板化 (使用模版)n当页面调用布局模板时,需要指定模板的位置n使用 ui:compo
10、sition 标记。为了把参数传递给模板,要使 用 ui:define 标记,它是 ui:composition 标记的子元素 P20版权所有 1993-2006 金蝶软件(中国)有限公司P20复合组件 n不要重复自己 nFacelets 把它的精华放在复合组件上 P21版权所有 1993-2006 金蝶软件(中国)有限公司P21复合组件的创建n创建 Facelets 标记库。 n在 web.xml 中声明标记库。 n用命名空间导入标记文件 P22版权所有 1993-2006 金蝶软件(中国)有限公司P22ExtJsnExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个 用javas
11、cript写 的,主要用于创建前端用户界面,是一个与 后台技术无关的前端ajax框架。因此,可以把ExtJS用在 .Net、Java、Php等各种开发语言开发的应 用中 nExtJS 由一系列的类库组成,一旦页面成功加载了ExtJS 库 后,我们就可以在页面中通过javascript 调用ExtJS 的类及 控件来实现需要的功能 P23版权所有 1993-2006 金蝶软件(中国)有限公司P23EXTJSnExtJS 的类库由以下几部分组成n底层API(core):底层API 中提供了对DOM 操作、查询的封 装、事件处理、DOM 查询器等基础的功能。其它控件都是 建立在这些底层api 的基础
12、上,底层api 位于源代码目录的 core 子目录中,包括DomHelper.js、Element.js 等文件 P24版权所有 1993-2006 金蝶软件(中国)有限公司P24Extjsn控件(widgets):控件是指可以直接在页面中创建的可视化 组件,比如面板、选项板、表格、树、窗口、菜单、工具 栏、按钮等等,在我们的应用程序中可以直接通过应用这 些控件来实现友好、交互性强的应用程序的UI。控件位于 源代码目录的widgets 子目录中 P25版权所有 1993-2006 金蝶软件(中国)有限公司P25ExtJsn实用工具Utils:Ext 提供了很多的实用工具,可以方便我们 实现如数
13、据内容格式化、JSON数据解码或反解码、对Date 、Array、发送Ajax 请求、Cookie 管理、CSS 管理等扩展 等功能 P26版权所有 1993-2006 金蝶软件(中国)有限公司P26ExtJs 组件nExt 组件是由Component 类定义,每一种组件都有一个指 定的xtype 属性值,通过该值可以得到一个组件的类型或者 是定义一个指定类型的组件。 n组件体系P27版权所有 1993-2006 金蝶软件(中国)有限公司P27ExtJs组件使用n组件可以直接通过new 关键子来创建,比如控件一个窗口 ,使用new Ext.Window(),创建一个表格则使用new Ext.G
14、ridPanel() n组件的构造函数中一般都可以包含一个对象,这个对象包 含创建组件所需要的配置属性及值,组件根据构造函数中 的参数属性值来初始化组件 P28版权所有 1993-2006 金蝶软件(中国)有限公司P28ExtJs组件n每一个组件除了继承基类中的配置属性以外,还会根据需 要增加自己的配置属性,另外子类中有的时候还会把父类 的一些配置属性的含义及用途重新定义。学习及使用ExtJS ,其中最关键的是掌握ExtJS 中的各个组件的配置属性及具 体的含义 nhttp:/ 1993-2006 金蝶软件(中国)有限公司P29AOMnAOM:Apusic OperaMask,金蝶中间件公司的
15、Web开发框 架nAOM完整实现了JSF1.2规范,同时,对JSF1.2规范做了大 量扩充,主要有AJAX支持、IoVC编程模型 P30版权所有 1993-2006 金蝶软件(中国)有限公司P30AOM架构图P31版权所有 1993-2006 金蝶软件(中国)有限公司P31AOM对Web组件的扩展 n标准的JSF提供了与HTML元素一一对应的Web组件,标准 的JSF Web组件基本上不能满足业务开发要求 nAOM在此基础上提供了一套基于Ext JS的Rich Components,根据Ext JS所提供的客户端组件模型,提供 了相应的服务器端组件模型、事件和组件渲染器,服务器 端组件模型可以
16、被复用,与具体的组件表现形式无关。而 组件的渲染器可以自行以替换的方式进行扩展 P32版权所有 1993-2006 金蝶软件(中国)有限公司P32AOM对Web组件的扩展n组件使用方式n通过指定控件属性jsvar,可以用extjs api在页面访问nhttp:/ amasks.docs/output/eclipse/index.htmlP33版权所有 1993-2006 金蝶软件(中国)有限公司P33AOM约定优于配置 n目前主流的一些框架如( Struts和spring)通过很多配置实 现对象的依赖注入nAOM中通过约定优于配置的规则,实现对象的注入P34版权所有 1993-2006 金蝶软件(中国)有限公司P34AOM -数据校验n简单校验 Annotation:Requiredn客户端校验n自定义校验n完整上下文校验P3