Hello, I'm using Seam 2.0GA.
I've a rich:dataTable that displays the values of a DataModel outjected from a "search" component. Each row defines a s:link with an action that triggers the call to a select method of an "info" component throuh a pageflow. The two components are in a the same conversation scope. It works fine if I use h:commandLink or h:commandButton but if i use s:link, it fails. The value passed to the select method is always the one that's attached to first row I've clicked. Here are the code snippets. SearchBookingAction: | @Stateful | @Scope(ScopeType.CONVERSATION) | @Name("search") | @Restrict("#{identity.loggedIn}") | public class SearchBookingAction implements SearchBooking { | | @In | private EntityManager arsEntityManager; | | @DataModel | private List<Booking> bookings; | | private String pnr; | private String flightNumber; | private Date flightDate; | | public void search() | { | Query query = arsEntityManager.createQuery(...); | bookings = query.getResultList(); | } | | .... | } | BookingInfoAction: | @Stateful | @Scope(ScopeType.CONVERSATION) | @Name("info") | public class BookingInfoAction implements BookingInfo { | | @In | private EntityManager arsEntityManager; | | private Booking booking; | | private List<Flight> departureFlights; | private List<Flight> returnFlights; | | public void selectBooking(Booking booking) { | this.booking = booking; | } | | public boolean populate() { | log.info("info.populate() called with: "+booking.getPnr()); | if (booking == null) | return false; | departureFlights = selectDepartureFlights(); | returnFlights = selectDepartureFlights(); | return true; | } | | ... | } | search.xhtml: | <rich:dataTable value="#{bookings}" var="currentBooking" > | <rich:column> | <f:facet name="header">#{messages['asr.list.pnr']}</f:facet> | #{currentBooking.pnr} | </rich:column> | <rich:column> | <f:facet name="header">#{messages['asr.list.name']}</f:facet> | #{currentBooking.masterName} | </rich:column> | <rich:column> | <f:facet name="header">#{messages['asr.list.flightnum']}</f:facet> | #{currentBooking.masterFlightNumber} | </rich:column> | ... | <rich:column> | <f:facet name="header">#{messages['asr.list.viewheader']} :</f:facet> | <s:link value="#{messages['asr.list.view']}" action="view" /> | </rich:column> | </rich:dataTable> | bo.jpdl.xml: | <start-page name="displaySearchBookingForm" view-id="/search.xhtml"> | <redirect/> | ... | <transition name="view" to="populateBookingInfo"> | <action expression="#{info.selectBooking(currentBooking)}" /> | </transition> | </start-page> | | <decision name="populateBookingInfo" expression="#{info.populate()}"> | <transition name="true" to="displayBooking"/> | <transition name="false" to="displayFindBookingForm"/> | </decision> | | <page name="displayBooking" view-id="/booking.xhtml" back="enabled"> | <redirect/> | ... | </page> | | ... | Any ideas why it works with a h:commandButton or h:commandLink and not a s:link? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4106404#4106404 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4106404 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user