MyFaces的初始化

9 篇文章 0 订阅

在MyFaces的JSF实现里JSF的相关工厂 (LifecycleFactory,ApplicationFactory,RenderKitFactory,FacesContextFactory 等)、JSF标准组件、Converter、Validate、及Renderer的实现类等都是通过 org.apache.myfaces.webapp.StartupServletContextListener这个
ServletContextListener类进行初始化,它需要在web.xml文件里进行配置。

这 个监听器通过org.apache.myfaces.config.FacesConfigurator这个类来取得这些工厂和标准组件的实现类。 FacesConfigurator通过配置文件org/apache/myfaces/resource/standard-faces- config.xml取得JSF标准组件、Converter、Validate、及Renderer实现类,通过META-INF/faces- config.xml取得附加的配置,通过ServletConfig初始化常量javax.faces.CONFIG_FILES的配置取得用户指定的 配置,通过/WEB-INF/faces-config.xml取得web默认的配置,配置文件的读取顺序如上描述,然后 FacesConfigurator根据这些配置值来初始化Application对象。

FacesConfigurator通过META-INF/services/<factoryName>目录下的配置文件取得对应工厂的默认实现类,目录下可以有多个配置文件,每个文件的内容都为一行实现类的全类名。
<factoryName>可以是
javax.faces.application.ApplicationFactory,
javax.faces.context.FacesContextFactory,
javax.faces.lifecycle.LifecycleFactory,
javax.faces.render.RenderKitFactory。
如果这些工厂的实现类没有在上述的文件里进行配置,是使用下面的一些默认实现
org.apache.myfaces.context.FacesContextFactoryImpl,
org.apache.myfaces.lifecycle.LifecycleFactoryImpl,
org.apache.myfaces.renderkit.RenderKitFactoryImpl。
如果NavigationHandler,PropertyResolver,StateManager,VariableResolver,ViewHandler没有指定,则分别使用默认实现
org.apache.myfaces.application.NavigationHandlerImpl,
org.apache.myfaces.el.PropertyResolverImpl,
org.apache.myfaces.application.jsp.JspStateManagerImpl,
org.apache.myfaces.el.VariableResolverImpl,
org.apache.myfaces.application.jsp.JspViewHandlerImpl。

对 于PropertyResolver及VariableResolver在初始化的时候会把指定的对象组合成一个chain。 FacesConfigurator还将配置的Renderer初始化到RenderKit中,将配置的ManagerBean及 NavigationRule初始化到RuntimeConfig中,将PhaseListener初始化到Lifecycle对象里,将 Application Listener初始化到Application对象中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值