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
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>
>


Reply via email to