日期:2014-05-16  浏览次数:20385 次

seam与jsf的结合
Seam与JSF的结合
1. 采用org.jboss.seam.servlet.SeamListener勾入Servlet容器的生命周期。初始化的工作主要在这个类中完成。
a) ServletContextListener接口
i. contextInitialized 在所有filter和servlet初始化之前调用,初始化web application ,建立servlet context时调用(读取web.xml等操作后)
ii. contextDestroyed 在所有filter和servlet被destory后调用,shut down web application
b) HttpSessionListener接口
i. SessionCreated 通知session创建
ii. sessionDestroyed 通知session失效
2. org.jboss.seam.jsf.SeamPhaseListener,增强了JSF的整个生命周期。LifeCycle,ServletLifeCycle,FacesLifeCycle关系

名称 作用
LifeCycle 建立或销毁Seam context
ServletLifeCycle 在servlet请求开始和结束的时候建立或者销毁seamContext
FacesLifeCycle 在JSF 请求开始和结束的时候建立或者销毁SeamContext
以FacesLifeCycle为例,他和org.jboss.seam.jsf.SeamPhaseListener配合使用。
在beforeRestoreView的时候,SeamPhaseListener 通过FacesLifeCycle. beginrequest方法,建立除了CoversationContext以外的上下文。
在 afterRestoreView 的时候,SeamPhaseListener 检查RequestParameters中是否存在conversionId,如果存在,则通过FacesLifeCycle. ResumeConversion方法建立conversionContext上下文。(为何不一次创建完成?)
3. SeamFilter 实现log,redirect,ajax等特殊功能。