- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
jsf源码
经过一段时间的学习,对JSF的认识也逐渐清晰。总结了一下JSF和structs的区别,首先在于分离了请求的处理。使用事件处理机制来代替原有的 request分发。其次在页面的展示上,采用组件的概念,而不是到处散落的html标记。再有,JSF对于请求的生命周期重新进行了划分,对于每个阶段都可以派遣事件,这使得整个请求的处理比较的清晰。最后,JSF对于页面的流转使用Navigation系统来处理,这一点感觉和structs还是比较类似的,只是换了一个概念。
从JSF的规范来看,JSF整体架构还是比较清晰,各个层次分的也挺明显。从总体上看,规范主要划分了application,context, lifecycle,render,component,validator,event,el几个部分,当然少不了主要的入口Servlet。有一点不太明白,大多数的类都是抽象类而不是接口,可能是为了规定层次吧,不允许多层次继承。下面简单以下介绍各个包的功能:
1.application:从定义上就可以看出来,这是应用级的。中间包括了Application主类,这是主要的程序入口,规范中最具有重量级的类,也是用来连接各个模块的。JSF规范使用工厂的模式,来创建相应的实现类.当然如果需要Application的实现,需要从 ApplicationFactory中取得。除了Application类,其中还包括了ViewHandler,这个主要负责View的 Renderer调配工作。而实现许多JSF整体架构,如果想定义自己的行为,一般上都会使用自身的ViewHandler,如facelets。 NavigationHandler的工作,不用说已经很明显,就是用来负责页面之间的导航。包中,还包括了view状态管理类-- StateManager,主要用于恢复view,以及保存view。目前一般使用Session来保存相应的view,当然也可以使用客户端来保存。其实,对于view状态的保存,非议还是挺多的,而且问题也比较多。
2.context:包括了主要的上下文环境类,如FacesContext和ExternalContext,前者是JSF的主要Context类,包括对 message的管理,Application的取得,以及ResponseWrite的引用。后者主要类似于作为外部环境的引用类,如 ServletContext和PortletContext.ResponseWriter,主要的服务端Writer,用于输出相应的html, xml内容,所有的Renderer都需要引用此类
3.lifecycle:这是JSF最大的特色,划分了请求的相应的处理阶段。规范中,只有两个类Lifecycle和LifecycleFactory。Lifecycle管理整个JSF请求的生命周期。通过指定的顺序执行相应的阶段。
4.webapp:定义了主要的Servlet,FacesServlet,主要的请求分发类,用于转换相应得faces为实际的资源。在规范中, Servlet并不是主要的初始化类,JSF 的初始化工作主要由具体的实现完成。在RI实现中,基本上由ConfigureListener完成初始化工作。而Servlet的任务只是简单的传递请求参数而已,以及调用相应的Lifecycle而已。
这里主要讲了JSF整体架构包,下面主要分析一下JSF相关组件的包。
这次主要分析一下JSF的相关组件包,也是JSF和structs主要不同的地方。JSF 规范中,对于组件的设计,和其他组件架构一样,分离表现层和模型层。对于组件的render由具体的Renderer来处理,这也达到了Model和 View分离的原则。
◆component:所有的基本组件都在其中,如下的主要类图,对于各个组件就不一一详细介绍了。主要介绍一下几个接口:
◆StateHolder:用于表示在请求之间需要保存相应的状态信息,必须实现saveState和resotreState方法。◆ValueHolder:用于支持本地值的保持,用于访问model数据,通过表达式,支持转换。◆EditableValueHolder:用于表示那些可以编辑的组件值◆ActionSource:由UIComponet实现,用于作为ActionEvent的事件源,支持默认的ActionListener调用◆ActionSource2:这是最近的规范中增加的,提供了对于MethodExpression的支持。◆ContextCallback:用于组件执行相应的回调◆NamingContainer:标志接口,表示容器组件◆convert:包括了主要的Convert接口,以及内置的Convert实现类,主要的作用用于在页
您可能关注的文档
最近下载
- 2024霸王茶姬- 以东方茶会世界友品牌简介手册-65P.pptx VIP
- 焊点标准(DIP部分).pdf
- 大职赛生涯闯关参考答案.docx VIP
- 宁夏水务投资集团有限公司招聘笔试题库2023.pdf
- eo体系内审检查表.doc
- 桉木P-RC+APMP化机浆废水的污染特征与生物处理的研究.pdf VIP
- 《基于项目式学习在初中物理教学中培养学生问题解决能力的实践研究》课题研究方案.doc
- Unit4Funwithnumbers.(课件)-外研版(三起)(2024)英语三年级上册.pptx VIP
- 城市轨道交通全自动运行系统场景技术规范.pdf VIP
- 大学本科优质生源基地建设管理办法.docx
文档评论(0)