Everyone on the mailing list has the use case you are describing :) . My advice is to use updateActionListener, or any ActionListener, for the low risk/preparation part of a unit of work - and to use an action for the high risk/completion of a unit of work.
In other words, you have two sequential subtasks. Get the identifier, and use this value to go to the database. t:updateActionListener allows you to do the first w/ one line of JSP code, unless your last name is Kienenberger :). Because it is an action listener, it will fire *before* the action. It is better to do the second part in an action because it involves a db transaction; this gives you navigational opportunities in the event of a problem, something not available in a listener. Does that help? >-----Original Message----- >From: Tom Butler [mailto:[EMAIL PROTECTED] >Sent: Wednesday, January 4, 2006 12:57 AM >To: ''MyFaces Discussion'' >Subject: RE: referencing a managed bean property problem > >Can I use updateactionlistener if I just want to display the data in the >second page, and not update it? > >-----Original Message----- >From: Dennis Byrne [mailto:[EMAIL PROTECTED] >Sent: Wednesday, January 04, 2006 12:29 AM >To: MyFaces Discussion >Subject: Re: referencing a managed bean property problem > > >http://wiki.apache.org/myfaces/ExecutingMethodsFromLinkButtonParameters?high >light=%28updateActionListener%29 > >>-----Original Message----- >>From: Dennis Byrne [mailto:[EMAIL PROTECTED] >>Sent: Wednesday, January 4, 2006 12:24 AM >>To: 'MyFaces Discussion' >>Subject: Re: referencing a managed bean property problem >> >>There is a wiki article on this. My favorite is #2. >> >>>-----Original Message----- >>>From: Tom Butler [mailto:[EMAIL PROTECTED] >>>Sent: Wednesday, January 4, 2006 12:13 AM >>>To: ''MyFaces Discussion'' >>>Subject: RE: referencing a managed bean property problem >>> >>>Simon, >>> >>>I have a follow up question to this: I have a .jsf page that displays a >>>datatable (listdatamodel) showing rows of names. At the end of each row I >>>display a commandlink with the value 'select' that allows the user to >select >>>a name. After they select a name, I want to take them to a second page to >>>show details for the selected value. >>> >>>Here is the commandlink from the first .jsf page: >>> >>><h:commandLink action="selectprovider" value="#{messages['sort_select']}" >/> >>> >>>On the second .jsf page, I access the same bean as was used for the first >>>.jsf page - I want to access the row index that the user selected from the >>>first page. Here's what I've tried and values I receive >>>(searchproviders_bean = bean from 1st page; dm_searchresults = >>>listdatamodel) >>> >>><h:outputText value="#{searchproviders_bean.dm_searchresults.rowIndex}"/> >>>Always returns -1 >>> >>><h:outputText value="#{searchproviders_bean.dm_searchresults.rowCount}"/> >>>Returns correct # of total rows >>> >>><h:outputText >>>value="#{searchproviders_bean.dm_searchresults.getRowIndex()}"/> >>>Returns error - assume cannot call method >>> >>>What is the best way to pass the id of a selected row from a datatable to >>>the second .jsf page? >>> >>>Thanks >>>Tom >>> >>> >>> >>>-----Original Message----- >>>From: Simon Kitching [mailto:[EMAIL PROTECTED] >>>Sent: Tuesday, January 03, 2006 4:26 PM >>>To: MyFaces Discussion >>>Subject: Re: referencing a managed bean property problem >>> >>>Hi, >>> >>>I don't think that the syntax "#{savingsBean.recentBlogEntries[row]}" is >>>allowed. EL doesn't support passing parameters to methods, just >>>reading/writing *simple* properties. >>> >>>I presume your #{savingsBean.savingsList} method returns a List. >>>You could add a method to your savingsBean that returns a ListDataModel >>>instance rather than a List, and specify that in the h:dataTable's >>>"value" attribute. You can then write a getRecentBlogEntries method >>>which accesses that ListDataModel object to get the current rowData or >>>rowIndex properties. These refer to the row currently being rendered at >>>the time the getRecentBlogEntries method is invoked. >>> >>> >>>Regards, >>> >>>Simon >>> >>>Alexandre Poitras wrote: >>>> I can see one quick mistake: >>>> #{savingsBean.recentBlogEntries[#{row}]} should be >>>> #{savingsBean.recentBlogEntries[row]} >>>> >>>> On 1/3/06, Marco Mistroni <[EMAIL PROTECTED]> wrote: >>>>> hello all, >>>>> this code results in an error >>>>> >>>>> <f:view> >>>>> <h:form id="savingsForm"> >>>>> <h:dataTable value="#{savingsBean.savingsList}" var="row" >>>border="1"> >>>>> <h:column> >>>>> <h:outputText value="#{row}"/> >>>>> </h:column> >>>>> <h:column> >>>>> <h:inputText >value="#{savingsBean.recentBlogEntries[#{row}]}"/> >>>>> </h:column> >>>>> </h:dataTable> >>>>> <h:panelGroup> >>>>> <h:commandButton id="submitInsert" action="#{savingsBean.insert}" >>>>> value="Insert"/> >>>>> </h:panelGroup> >>>>> </h:form> >>>>> </f:view> >>>>> >>>>> >>>>> at this point >>>>> >>>>> <h:inputText value="#{savingsBean.recentBlogEntries[#{row}]}"/ >>>>> >>>>> recentBlogEntries is a Map. i tried, for hte sake of trying, to put in >a >>>>> List (savingsList, the one used for DataTable)all keys >>>>> of the Map, and tried to generate inputText for the Map by passing the >>>value >>>>> of #{row} (which woul dbe the key of the map) >>>>> >>>>> it didnt work out..... is that impossible or is my syntax wrong >somehow? >>>>> >>>>> thanks and regards >>>>> marco >>>> >>>> >>>> -- >>>> Alexandre Poitras >>>> Québec, Canada >>>> >>>> >>> >>> >> >> >> > > >

