ITPub博客

首页 > Linux操作系统 > Linux操作系统 > JBoss Seam的真相 – JBoss Seam系列之(三)

JBoss Seam的真相 – JBoss Seam系列之(三)

原创 Linux操作系统 作者:梧桐雨—168 时间:2008-04-18 23:47:47 0 删除 编辑

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

    
        org.jboss.seam.jsf.SeamPhaseListener
    

phase-listener为JSF定义了一个seam侦听器。Seam就是通过SeamPhaseListener来切入JSF的生命周期,取得JSF生命周期的控制权。
有关phase-listener的详细说明请参考我们的另一篇文章:从JSF的切入点控制JSF

2,    与EJB的集成
ejb-jar.xml

http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
         version="3.0">
        
  
    
       org.jboss.seam.ejb.SeamInterceptor
    

  

  
  
      
         *
         org.jboss.seam.ejb.SeamInterceptor
      

  

  

以上为所有的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里申明了org.jboss.seam.ejb.SeamInterceptor,会先调用SeamInterceptor里的相应方法,在这些方法里,会处理Seam的annotation等。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13270562/viewspace-244082/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: JBoss Seam简介
请登录后发表评论 登录
全部评论

注册时间:2008-02-28

  • 博文量
    141
  • 访问量
    429025