1. 用注解来启动conversation,同时选定对象

示例:

@Begin
   public void selectHotel(Hotel selectedHotel)
   {
      hotel = em.merge(selectedHotel);
   }

其中,EntityManager.merge()方法将选定的对象的状态放入当前持久化上下文中,即让选定的对象的状态进入我们的“视野”。

对应的页面部分:

<h:column id="column5">
	<f:facet id="ActionFacet" name="header">Action</f:facet>
        <s:link id="viewHotel" value="View Hotel" action="#{hotelBooking.selectHotel(hot)}"/>
</h:column>
2. 用注解来 结束conversation
比如,页面中 “取消” 按钮的功能,

示例:

 @End
   public void cancel() {}
或者是一个定义conversation流程进入末尾,比如,“确定” 按钮的功能

示例:

 @End
   public void confirm()
   {
      em.persist(booking);
      facesMessages.add("Thank you, #{user.name}, your confimation number for #{hotel.name} is #{booking.id}");
      log.info("New booking: #{booking.id} for #{user.username}");
      events.raiseTransactionSuccessEvent("bookingConfirmed");
   }

更多推荐

有状态Bean中用方法管理conversation