JBoss Seam作为JSF,EJB3的粘合剂,可以完美无缺的让你的WEB应用轻松集成JSF和EJB技术。
参考:Java框架由重变轻?JBoss Seam – Java开发的时代新宠:JBoss Seam系列(一)
JBoss Seam是通过什么来集成JSF和EJB3的呢?本文对此作一个探讨。
1, 与JSF的集成
JBoss Seam应用首先必须在你的faces-config.xml定义以下内容:
faces-config.xml
phase-listener为JSF定义了一个seam侦听器。Seam就是通过SeamPhaseListener来切入JSF的生命周期,取得JSF生命周期的控制权。
有关phase-listener的详细说明请参考我们的另一篇文章:从JSF的切入点控制JSF
2, 与EJB的集成
ejb-jar.xml
以上为所有的EJB Beans定义了SeamInterceptor回调。EJB3容器会在调用Session Bean之前先调用SeamInterceptor。这就使得Seam跟Session Bean有机结合起来了。
以JBoss Seam自带的sample:examples/registration为例,我们使用下图对JBoss Seam的处理过程加以讲解:
regist.jsp页面Register按钮提交时,JSF的Lifecycle会把控制权交给SeamPhaseListener,经过SeamPhaseListener解析与处理,把JSF的模型值设置到EJB Entity Bean: User里。并把事件处理绑定到RegisterAction.register()方法。由于在ejb-jar.xml里申明了来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13270562/viewspace-244082/ ,如需转载,请注明出处,否则将追究法律责任。