02金蝶BOS开发工程师基础认证培训深入浅出JSF框架

上传人:痛*** 文档编号:242491004 上传时间:2024-08-25 格式:PPTX 页数:110 大小:3.71MB
返回 下载 相关 举报
02金蝶BOS开发工程师基础认证培训深入浅出JSF框架_第1页
第1页 / 共110页
02金蝶BOS开发工程师基础认证培训深入浅出JSF框架_第2页
第2页 / 共110页
02金蝶BOS开发工程师基础认证培训深入浅出JSF框架_第3页
第3页 / 共110页
点击查看更多>>
资源描述
,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,单击此处编辑母版标题样式,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright1993-2009 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,Copyright199302007 Kingdee International Software Group Company Limited,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,P,*,深入浅出,JSF,框架,BOS,分析设计部 葛朋旭,序言,JSF,作为,JavaEE,的标准,Web,框架,发展历程,1.0,-1.1-1.2-,2.0,IBM,Oracle,开源社区有多种实现版本,AOM,、,WAF,的底层核心就是,JSF,框架,JSF,的标准规范,JSF,的框架原理,JSF,生命周期分析,JSF,的高级特性,JSF,的,RIA,技术整合,JSF,的新版本趋势,提纲,JSF,标准规范,框架设计原理,生命周期跟踪,高级特性分析,RIA,技术整合,新版本趋势,JSF,流行曲,Application Development Technologies,One-Tier,Two-Tier,Multi-Tier,Todays Application Development,Frameworks,Tapestry, Struts, Webwork, Hibernate, TopLink, ADF UIX,Spring,What is JSF?,JavaServer Faces (JSF) is a user interface (UI) framework for Java,Web applications. It is designed to significantly ease the burden of,writing and maintaining applications that run on a Java application server,and render their UIs back to a target client.,JSF,流行曲,JSF Developer Type,Page author,Application developer,Component writer,Tools provider,JSF implementers,提纲,JSF,标准规范,框架设计原理,生命周期跟踪,高级特性分析,RIA,技术整合,新版本趋势,JSF,标准规范,- JSF,有什么,JSR-127 Standard specification,JDK1.5,Java Servlet 2.5,JavaServerTM Pages 2.1,JavaServerTM Pages Standard Tag Library 2.1,Component Model,Event Driven,Navigation Model,Application Lifecycle,架构跟协议、,Makeup,的无关性,提纲,JSF,标准规范,框架设计原理,生命周期跟踪,高级特性分析,RIA,技术整合,新版本,趋势,JSF,Architecture,MVC,JSF,Architecture,MVC,Model 2,JSF,Architecture,MVC,Model 2,Struts model2,JSF,Architecture,MVC,Model 2,Struts model2,JSF model2,JSF,Architecture,Model 2 Pattern【MVC】,Model,Managed Bean/Backing beans,JavaScript Model,View,UIComponent,DHTML/DOM/CSS,(XML)based, WML-based,Controller,FacesServlet,JavaScript Controlller,Component-Based UI Framework,UIComponent,Renderer,RenderKit,Renderer-specific component subclass,JSP tag/ Facelets,JSF UIComponent,1.1,UI Component,Renderer-Specific Class,Renderer Type,Syntax/JSP Tag,UIInput,UIOutput,UICommand,UIForm,UIData,UIColumn,UIGraphic,UIMessage,UIMessages,UIPanel,UIParameter,UISelectOneBoolean,UISelectItem,UISelectItems,UISelectMany,UISelectOne,UIComponnet,UIComponentBase,UIViewRoot,JSF UIComponent,1.1,1.2,UINamingContainer,JSF,框架分析,-1,Saving and Restoring State,StateManager,ResponseStateManager,javax.faces.ViewState,Component Family and Component Type,Converters,Validators, Events, and Listeners,Facets,JSF,框架分析,-2,Renderers,decode,encode,JSF,框架分析,-2,Renderers,Renderer Types,JSF,框架分析,-2,Renderers,Renderer Types,RenderKits,HTML,SVG, WML, Ajax, XUL,Microsofts DHTML/HTML Components (HTC),Mozillas XUL/XML Binding Language (XBL),Custom Action Tag Handlers,提纲,JSF,标准规范,框架设计原理,生命周期跟踪,高级特性分析,RIA,技术整合,新版本,趋势,JSF Development,Building an Application Using JSF,创建,ManagedBean,编写,View,页面,配置,faces-config.xml,JSF Request Process,接收到一个,jsf Request,时,,JSF implementation,启动,相应的,processes/services,必须在,portal/servlet,环境可用,为此,JSF,实现调用不同的工厂类完成各方面的职责。,Web Application Start-Up,一个,JSF Web application,启动, 4,个工厂被实例化,ApplicationFactory,创建,Application,实例,,Lifecycle instance to create and restore JSF views,。,LifecycleFactory,returning a Lifecycle instance for a lifecycle identifier,RenderKitFactory,returning a RenderKit for the JSF Web application,FacesContextFactory,create an instance of FacesContext that is used to represent contextual information associated with the incoming request and eventually with the response,JSF Lifecycle,Request-Processing Lifecycle,1 Restore View,2 Apply Request Values,3 Process Validations,4 Update Model Values,5 Invoke Application,6 Render Response,Lifecycle Web Start-up,启动阶段,Lifecycle Web Start-up,启动阶段,facesServlet,内部创建,FacesContextFactory,LifecycleFactory,每个,JSF Web,程序 一个,ApplicationFactory,每个,JSF implementation,有一个缺省,RenderKit,Lifecycle,- Restore View Phase,Restore View Phase,ViewHandler.restoreView(),restoring a view from the server and client state,如果,ViewHandler.restoreView(),返回,null,调用,FacesContext,的,renderResponse(),否则,调用,ViewHandler.createView(),创建,UIViewRoot,,并绑定到,FaceConext,Lifecycle,- Render Response Phase,步骤,1,调用,ViewHandler.renderView(),执行,JSP,文档,从,UIViewRoot,中获取到,viewId,值,传递给方法,ExternalContext.dispatch(),dispatch,方法再,forward,相应,viewId,的值给,Web,容器,Lifecycle,- Render Response Phase,步骤,2,JSF-specific,不负责,forwarded request,被,FaceServlet,忽略的,request,将传给,JSP,容器,JSP,容器将按顺序,根据上下文的相对路径,执行跟,viewId,匹配的,JSP,页面,Lifecycle,- Render Response Phase,步骤,3,在处理、执行,JSF,的,JSP,页面前,,JSP,引擎检测所用的,content typetext/html,和,character encodingUTF-8,标签优先展示,作为所有,JSF,组件的容器,创建、保存一个,ResponseWriter,实例在,FacesContext,中,ResponseWriter,将输出客户端的标签,缺省的,RenderKit HTMLRenderKit,要求,content type,必须为,text/html,JSF component,被创建,并绑定到组件层次树上,如,:,对应,HtmlForm,Lifecycle,- Render Response Phase,步骤,4,JSF,JSP tag,调用,Application.createComponent(),方法该方法以一个字符表示,component type,如:,javax.faces.HtmlForm,component type,被映射到,faces-config.xml,中定义的一个类,一个,HtmlForm,组件将被创建并绑定到,UIViewRoot,通过,component family,和,renderer type,来定位一个具体的,Renderer,tag,调用组件的,encodeBegin(),方法,相应调用,HtmlForm renderer,的,encodeBegin(),方法,方法输出,代码,Lifecycle,- Render Response Phase,步骤,5,在,中所有嵌套的组件都会被创建并,render,并添加到,中。, tag,被执行,将调用,Renderer,的,encodeEnd(),调用,ViewHandler,的,writeState(),传递,a token,给,ResponseWriterjsf1.2,之前的做法,encodeEnd(),方法输出,最后,输出,JSF1.2,component hierarchy,先创建,再输出展示,Lifecycle,Postback Request,Postback Scenario,用户在接收到初始请求页面后,,输入、提交数据。,How JSF handles postback,6,个生命周期被调用,或者,FacesContext.renderResponse(),来跳过某个,跟,initial request,的不同之处在于第一、最后一个阶段,Lifecycle,JSF handles postback,1,Restore View Phase,跟,Init Request,相同,调用,ViewHandler,的,restoreView,方法,保存此前请求的任何状态变量。,差异性,restoreView(),不再返回,null,而是返回跟,viewId,相关的当前组件树状态。,如果,STATE_SAVING_METHOD,设置为,client-side,保存,回复的组件树将传递给,FacesContext,Lifecycle,JSF handles postback,2,Apply Request Values Phase,每个,input,组件从请求参数中建立,submitted value,每个,command,组件查询事件,并传递到,Invoke Application phase.,注意,submitted value,只存在组件上,不会提交到底层的,Model,上。,到,Apply Request,阶段完成时,,Renderers,不再需要观察,request parameters,所有的值都提交到每个组件上了。,Lifecycle,JSF handles postback,3,Process Validation Phase,UIViewRoot,上的,processValidators(),被调用,,conversion,、,validation,将被执行,注意,该过程递归调用每个组件上的,processValidators,方法,每个,HtmlInputText,的验证时,,Type Conversion,首先只发生在组件的,submitted value.,String, Typed Object,新的对象作为组件的,local value,同时,Submitted value,被清除,新的强类型对象被,validated,如果发生错误,接下来的步骤,将监听,ValueChangeEvent,事件,其被传递到最后一个,Apply Request Values phase,如果转换、验证阶段发生异常,相应的,JSF,消息将通过组件的,clientID,绑定到,FacesContext,然后调用,renderResponse(),方法,直接调整到,Render Response phase.,Lifecycle,JSF handles postback,4,Update Model Phase,所有的转换、验证,OK,的值,被提交到底层的,Model,JSF,遍历组件树,调用每个组件的,processUpdates,方法,为了判定那里存储了新的值,,processUpdates,方法通过,value binding.,定义组件的,value,属性,如:,#credentials.username),Value binding,指向,Managed bean,的一个属性,如,username,组件的,local value,提交到,model,中,然后,local value,清除,注意,任何,Model,的消息、错误,通过组件的,clientId,绑定到,FacesContext,上,,renderResponse,方法被调用,直接转到,Render Response Phase.,Lifecycle,JSF handles postback,5,Invoke Application Phase,不需要遍历层次树结构,该阶段只处理上一个阶段列入队列中的事件。,处理完毕,或者进入最后阶段,Render Response,,或者重定向到另外一个页面,Lifecycle,JSF handles postback,5,Invoke Application Phase,在,ActionEvent,发生时,有两个方法被执行。,UIViewRoot,上的,processApplication(),方法,将队列中的事件,广播到目标的事件组件上。,ActionListener,上的,processAction(),方法,所有注册的,ActionListeners,都被调用,然后方法绑定被执行,最后组件调用缺省,ActionListener,的,processAction,来执行绑定方法,处理导航。,注意,Action,方法绑定最后执行被调用,Lifecycle,JSF handles postback,6,Postback with Navigation,缺省,ActionListenter,处理,ActionEvent,时,调用绑定的,action,方法,并且获取,outcome,,一个字符标示,如果,outcome,为,null,将继续处理下一个队列事件,处理完毕进入下一个阶段,Render Response.,如果,outcome,不是,null, ActionListener,将传递,FacesContext, fromAction, outcome,到,NavigationHandler,。,Lifecycle,JSF handles postback,6,Postback with Navigation,导航规则在,faces-config.xml,中存储,在,start-up,时读取,并存在,Appliction,对象中。,NavigationHandler,检测导航规则,通过,fromViewId,fromAction,outcome,匹配。,导航处理,1,:,Redirecting,导航处理,2,:通过,handleNavigation(),,创建新的,UIViewRoot,让缺省的,ActionListener,调用,renderResponse(),来初始,Render Response phase.,提纲,JSF,标准规范,框架设计原理,生命周期跟踪,高级特性分析,RIA,技术整合,新版本,趋势,高级特性,JSF,的底层技术,事件驱动编程,自定义验证器、转化器,自定义组件,高级特性,JSF,的底层技术,Servlet,JSP,JSTL/EL,Facelets,高级特性,JSF的底层技术-Servlet,版本,特性,JSP,JSTL,JDK,JSF,2.2,引入了,self-containedWebapplications,概念,1.1,1.2,2.3,增加了,filters,和,filterchains,的功能,引入了,context,和,sessionlisteners,Http1.0,1.2,1.0,1.2,2.4,加入了,requestlisteners,支持,Http1.1,J2EE1.4,2.0,1.1,1.3,1.4,1.0,1.1,2.5,基于,J2SE5.0,开发,支持,annotations,Web.xml,配置便利性,去除了少数的限制,优化了一些实例,2.1,1.2,1.5,1.2,高级特性,Faces Servlet,javax.faces.webapp.FacesServlet,实例,Ajax4jsf,Eas waf,operamasks-faces_2.2M1,高级特性,Faces Servlet,分析,实例,FacesContextFactory,Lifecycle,ServletConfig,方法,init(),service(),destroy(),高级特性,JSF,的底层技术,Servlet,JSP,JSTL/EL,Facelets,高级特性,JSF,的视图(,View,)技术,JSP,1.0,、,1.1,风格,编译效率差、缺少模板化,Facelets,使用,XHTML,规范,实现模板(,Template,)功能,方便地创建自定义标签和,EL,函数,Portal,高级特性,JSF,的,UI,界面,JSP,风格,高级特性,JSF,的,UI,界面,JSP,风格,XHTML,风格,高级特性,JSF,的底层技术,Servlet,JSP,JSTL/EL,Facelets,高级特性,JSTL,JSTL,JSP,标准标记库,(JSP Standard Tag Library),,实现,Web,应用程序中常见的通用功能的定制标记库集,JSP 1.2,定制标记库集,包括,迭代和条件判断,数据管理格式化,XML,操作,数据库访问,体现的作用,避免在,JSP,页面中使用脚本编制元素,从表示层删除源代码来简化软件维护,高级特性,JSTL/EL,JSTL1.0 (J2EE 1.3/JSP 1.2 ),core,、,format,、,xml,、,sql,验证器,ScriptFreeTLV,、,PermittedTaglibsTLV,JSTL1.1,(,J2EE 1.4/JSP 2.0,),支持,EL,灵活使用,EL,表达式,提供了一个用,EL,表示的强大的属性集,使得,JSP,动态表示层技术开发可以完全脱离,Java,脚本代码,JSTL1.2,(,J2EE5/JSP2.1,),高级特性,JSTL/EL,表达式语言(,EL,),以,EcmaScript,和,XPath,为基础,JSP 2.0,新特性,(Expression Language ),擅长寻找对象及其特性,然后对它们执行简单操作,用,.,和,访问对象的属性,高级特性,JSTL/EL,表达式语言(,EL,),以,EcmaScript,和,XPath,为基础,JSP 2.0,新特性,(Expression Language ),擅长寻找对象及其特性,然后对它们执行简单操作,访问隐式对象,高级特性,JSTL/EL,表达式语言(,EL,),以,EcmaScript,和,XPath,为基础,JSP 2.0,新特性,(Expression Language ),擅长寻找对象及其特性,然后对它们执行简单操作,访问隐式对象,运算符,高级特性,JSTL/EL,表达式语言(,EL,),以,EcmaScript,和,XPath,为基础,JSP 2.0,新特性,(Expression Language ),擅长寻找对象及其特性,然后对它们执行简单操作,访问隐式对象,运算符、优先级,高级特性,JSF,的底层技术,Servlet,JSP,JSTL,Facelets,高级特性,-Facelets,问题,JSF,和,Java,服务器页面技术之间的不匹配,JSP,非常重视生成动态内容输出,而,JSF,需要,JSP,来协调组件模型的构建,Facelets,Facelets,是更加全面的解决方案,专为,JSF,组件模型度身定制的模板化语言,分析,JSP,是种生成,servlet,的模板化语言。,JSP,的主体与,servlet,的,doGet(),和,doPost(),方法等价(也就是说,成为,jspService(),方法)。,JSF,定制标记(例如,f:view,和,h:form,)只是调用,JSF,组件来呈现它们自己的当前状态。,JSF,组件模型的生命周期独立于,JSP,生成的,servlet,的生命周期,这种独立性就是混淆的来源,高级特性,-Facelets,Facelets,Facelets,这个模板化语言,从构建之初,就考虑了,JSF,的组件生命周期。使用,Facelets,,生成的模板会构建组件树,而不是,servlet,。这就允许更好的重用,因为可以把组件组合成另一个组件,特性,模板化(像,Tiles,),复合组件,定制的逻辑标记,表达式语言,对设计师友好的页面开发,创建组件库,高级特性,-Facelets,开发要求,Facelets,本身就可以使用,JSF,定制组件,在,Facelet,标记库文件中声明,JSF,组件,在,Facelets,模板化语言中可以直接使用,JSF,组件,不用任何额外的开发,Facelets,模板框架,允许使用熟悉的,JSTL,样式的标记和,JSTL/JSF/JSP,样式的表达式语言,Facelets,允许定义能够直接包含进页面或者容易地添加到,Facelet,标记库的组件集,高级特性,-Facelets,步骤,1,导入,jsf-facelets.jar,在,operamasks-faces_2.2M1,的,operamasks-third-party.jar,包括了相应的,lib,高级特性,-Facelets,步骤,2,把 Facelet 初始化参数添加到 web.xml 文件中,如,operamasks-faces_2.2M1,的,web.xml,高级特性,-Facelets,步骤,3,在,faces-config.xml,配置,FaceletViewHandler,如:,operamasks-faces_2.2M1,的,faces-config.xml,高级特性,-Facelets,步骤,4,使用,xmlns:ui=, JSF,事件处理模型,动作事件,简单导航,根据(,action method,)的结果来决定要导向的网页,JSF,会为其自动产生一个“预设的,ActionListener”,来处理事件,并根据其传回值来决定导向的页面 。,高级特性,- JSF,事件处理模型,动作事件,优先处理指定的,ActionListener,【,可有多个,】,再处理默认的,ActionListener,最后是,Action,使用,标签向元件注册事件,高级特性,- JSF,事件处理模型,动作事件,即时事件,Immediate Events,指,JSF,视图元件在取得请求中该取得的值之后,即立即处理指定的事件,而不再进行后续的转换器处理、验证器处理、更新模型值等流程 。,原因,HTTP,无状态的特性,对于,input,与,command,元件,通过,immediate,属性,当点击按钮后,,JSF,套用请求值之后会立即处理指定的,actionListener,,而不再进行验证、更新模型值 。,高级特性- JSF事件处理模型,动作事件,即时事件,值改变事件,Value Change Event,方法,1,在控件上设定,valueChangeListener,属性,方法,2,实现,javax.faces.event.ValueChangeListener,高级特性- JSF事件处理模型,动作事件,即时事件,值改变事件,阶段事件,JSF,的生命周期的,6,个阶段,各阶段的前后会引发,javax.faces.event.PhaseEvent,可以实现,javax.faces.event.PhaseListener,,并向,javax.faces.lifecycle.Lifecycle,注册这个,Listener,高级特性- JSF事件处理模型-阶段事件,PhaseListener,三个必须实现的方法,getPhaseId(),传回一个,PhaseId,beforePhase(),afterPhase(),实例,高级特性,JSF,的底层技术,事件处理模型,自定义验证器、转化器,自定义组件,高级特性,-,自定义转化器、验证器,转化器,将,HTTP,请求提交的字符格式数据,转化为组件所需的格式对象。,步骤,实现,Converter,接口(,javax.faxes.convert.Converter,),或者不实现,Converter,接口,直接在,Bean,中取得转换器的方法,实现,public Object getAsObject (FacesContext context, UIComponent component, String str),方法,实现,public String getAsString (FacesContext context, UIComponent component, Object obj),方法,在,faces-config.xml,中注册自定义转换器,使用,用,设置组件的,converter,属性,直接在,Bean,中调用,高级特性,-,自定义转化器、验证器,转化器实例,将一个字符串值转换为一个,PhoneNumber,对象,高级特性,-,自定义转化器、验证器,验证器,验证客户端提交的值,是否满足业务要求,如果验证,OK,,更新到模型中。,步骤,实现接口,Validator javax.faces.validator.Validator ,编写验证标签,ValidatorTag,注册验证器,注册标签,使用,高级特性,-,自定义转化器、验证器,验证器-实例,高级特性,JSF,的底层技术,事件处理模型,自定义验证器、转化器,自定义组件,高级特性,-,自定义组件,JSF,组件开发需要了解很多基础知识,JSF,组件由两部分,组件和渲染器,组件类定义,UI,组件的状态和行为,渲染器定义如何从请求读取组件、如何显示组件,通常通过,HTML,渲染,参考手册,提纲,JSF,标准规范,框架设计原理,生命周期跟踪,高级特性分析,RIA,技术整合,新版本,趋势,RIA,技术整合,Ajax,Mozilla XUL,Microsoft HTC,OpenLaszlo,Flash/Flex,Applet/JavaFX,RIA,技术整合,_Ajax,特性,Ajax,核心,表单自动完成,DWR,实时验证,Rico,传送客户端视图状态,直接,Web,远程调用,Ajax,组件,命令式,/,声明式,Ajax4JSF / Seaming Remoting,RIA技术整合_Ajax,Core Ajax,JavaScript, XMLHttpRequest,DOM,XMLHttpRequest,RIA技术整合_Ajax,开发模式,传统模式,RIA技术整合_Ajax,开发模式,传统模式,Ajax,模式,RIA技术整合_Ajax,开发模式,传统模式,Ajax,模式,实例,RIA,技术整合,_Ajax,JSF,的,Ajax,整合步骤,Creating a UI prototype,Creating events and listeners(,Optional,),Creating a behavioral superclass(,Optional,),Creating a client-specific Renderer,Partial-Page Rendering (PPR),Delta DOM Rendering (D2R),Creating a renderer-specific subclass(,Optional,),Registering a UIComponent and Renderer,Creating a JSP tag handler and TLD(,Facelets,不需要,),Creating a RenderKit and ResponseWriter,(,支持多种,RIA,技术、客户端浏览技术,),Extending the JSF implementation(,Optional,),Registering a RenderKit and JSF extension,Registering resources with Weblets,RIA技术整合_Ajax,Ajax,的事件处理,JSF,的生命周期,对,Servlet,模型屏蔽了应用代码,从而促进了面向组件的设计。,针对,Ajax,的抽象性,通过,Seam Remoting/Ajax4Jsf,处理。,Seam Remoting,Ajax4Jsf,通过,Ajax,交互,将,JSF,组件熔合到浏览器所需的管道处理。,事件触发时,消息异步发送到服务器的组件,收到响应后,对页面增量更新。,都服务于,JSF,的,Ajax,化。,Ajax,整合,Seam Remoting VS Ajax4JSF,相同点,都使用,Ajax,来引入交互模型,都可配备生命周期,且在浏览器需要时,恢复组件状态,都采用,JSF,组件模型,Seam Remoting,特性,提供,JavaScript API,使用定制的、非,JSF,生命周期,实现浏览器跟服务器组件通信。,Seam,容器和其组件,可在此请求期间被恢复。,Ajax4JSF,特性,完全隐藏,JavaScript,而更加抽象,所有逻辑都封装在,UI,组件内。,通过完整的,JSF,生命周期接受,Ajax,请求。,RIA,技术整合,Ajax,Mozilla XUL,Microsoft HTC,OpenLaszlo,Flash/Flex,Applet/JavaFX,RIA,技术整合,_Mozilla XUL,XUL,XML User Interface Language,Mozilla,组织的开源工程,XBL,Extensible Binding Language,,被,XUL,用来定义组件的语言,作为,HTML/XUL,之间的桥梁,特征,速度快、可与,JavaScript,一起工作,基于,XML,支持,FireFox,的内部工作,【SQLITE,存储引擎,】,。,完全依赖,Mozilla,系列技术,。,RIA,技术整合,_Mozilla XUL,实例,1 Simple XUL Event,RIA,技术整合,_Mozilla XUL,实例,2 XUL With XBL,myxbl.xml,、,testxbl.css,、,testxbl.xul,RIA,技术整合,_Mozilla XUL,RIA,技术整合,Ajax,Mozilla XUL,Microsoft HTC,OpenLaszlo,Flash/Flex,Applet/JavaFX,RIA,技术整合,_Microsoft HTC,HTC,在脚本中实现组件,作为,DHTML,的,behaviors,HTC,能够创建可重用组件,类似,XBL,对,XUL,的作用,结构,RIA,技术整合,_Microsoft HTC,HTC,在脚本中实现组件,作为,DHTML,的,behaviors,HTC,能够创建可重用组件,类似,XBL,对,XUL,的作用,结构,RIA,技术整合,_Microsoft HTC,HTC,在脚本中实现组件,作为,DHTML,的,behaviors,HTC,能够创建可重用组件,类似,XBL,对,XUL,的作用,结构,实例,RIA,技术整合,HTC VS XBL,HTC,和,XBL,对比性,类型,相似性,差异性,对比点,1: use CSS to attach components or behavior to an HTML element,2: provide encapsulation of a document tree within the component,3: depend on the underlying browser platform,1:,基于的格式不同,2:,基于不同的平台,HTC,based on HTML,needs Microsofts,Internet Explorer,XBL,based on XML,XBL needs Mozilla GRE,RIA,技术整合,Ajax,Mozilla XUL,Microsoft HTC,OpenLaszlo,Flash/Flex,Applet/JavaFX,RIA,技术整合,_OpenLaszlo,What is OpenLaszlo,一种富客户机应用程序架构,使用,Flash,作为部署载体,依赖,JavaScript,来表达逻辑 。,优势,高级的,UI,约束系统、面向对象的设计方法学,支持,Web,服务和,RPC,调用,提供带有大量动画的用户界面,提供能在多种浏览器,(,旧浏览器,),上显示的标准表示法,动态建立的应用程序,略势,学习成本、受,Flash,技术限制,缺少一些企业特性,如,Flex Data Services,RIA,技术整合,Ajax,Mozilla XUL,Microsoft HTC,OpenLaszlo,Flash/Flex,Applet/JavaFX,提纲,JSF,标准规范,框架设计原理,生命周期跟踪,高级特性分析,Ajax,整合,新版本趋势,新版本趋势,-JSF2.0,更好的支持,Ajax,,扩大了请求处理生命期,独立 “树结构的生成”和“树结构的使用” 生命期阶段,允许部分树在生命期内通过,Ajax,来访问集合,允许可标记的,JSF,页面,客户端之间和内部组件,表单级的验证,支持对绑定和分发与某个组件相关静态资源,对标准,html,组件的策略性补充,定制插件机制解决问题,页面动作,提供方便的访问持久存储机制,JSF,框架整合性,Web Shale,基于,JSF,的,web,开发框架 ,重用大量的,Strust,基础代码,一种面向服务架构。,与,Spring,框架集成,可选的类似,Tapestry/Facelets,的纯,HTML,视图,提供测试框架,Ajax,服务端支持,Tiger,扩展,实图标准,Facelets,集成,EJB -seaming,Q,&,A,谢 谢,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!