[SEAM] 请教一个JavaBean组件作为Action的问题。
JohnsonXiao
2008-04-09
最近学习大牛们翻译的seam手册,受益匪浅。但是最近在学习过程中遇到个问题没想明白,请教一下大家。
翻译文档,3.2.4. JavaBeans小节: “默认,JavaBeans是绑定到Event Context的。” 在第8章详细谈论了JavaBean组件中使用seam管理持久化上下文与事务的关系。 接着我看了一下Seam发布包中的示例: hibernate2文件夹下,HotelBookingAction类,没有显示指定上下文类型,就是说使用了默认的EVENT Context,但是它的代码里面又使用的@Begin,@End标签表示它是个会话上下文组件,这是为什么? 郁闷一天了,没想明白,那位大牛指点一下。。。 |
|
atusoft
2008-04-13
有状态的session bean默认的是conversation吧。如果是javabean的话,就是event了。HotelBookingAction估计是个session bean.
|
|
SSailYang
2008-04-13
HotelBookingAction 被 javax.ejb.Stateful 标记了,它是SFSB,不是JavaBean
|
|
yourenyouyu2008
2008-04-14
@Begin,@End和所在的类的范围没有关系,对话上下文范围的类里没有一个有@Begin的。@Begin将类里@out的属性加入对话上下文,这样在对话的下一步就可以取到上一步的值了。
|
|
JohnsonXiao
2008-04-16
//$Id: HotelBookingAction.java,v 1.7 2007/06/25 16:18:46 gavin Exp $
package org.jboss.seam.example.hibernate; import java.util.Calendar; ...... @Name("hotelBooking") public class HotelBookingAction { @In private Session bookingDatabase; 我说的是JEE环境,没有被 javax.ejb.Stateful 标记。 |
|
JohnsonXiao
2008-04-16
但是这个类确实是个会话JavaBean,我测试了一下,无论我给这个JavaBean增加什么注解(会话、Event、Page),都对其没有影响。
|