Thank! Oh..and very interesting book!
Mario Ivankovits wrote: > > Hi! > > You can use two strategies: > > 1) use conversation.access (as you outlined) with the same > conversationName. You can configure the conversationName in your spring > config. Just use the same name for aBean and bBean. > This makes it easy to pass the selected bean to the second bean, and due > to the same conversationName they share the same persistenceContext and it > is no longer bad to pass around entities. It depends on how many > additional data you load on your detail bean, if you load a lot of things > strategy 2 might be better. > > 2) still use conversation.acces, but do not configure a conversationName. > You end up having two persistence contexts. > In this scenario you should not pass around the entity bean, but just pass > the primary key of the entity and reload the entity in bBean > > Might be something like this: > <tr:setActionListener from="#{aBean.key}" to="#{bBean.selectedEntityKey}" > /> > > 2a) Now, you have an additional possibility. If you would like to detach > the knowledge of the aView how to pass the key to the bView you can > configure the > UrlParameterNavigationHandler. > > Look at the book excerpt here: > http://books.google.at/books?id=FPxif81mgYoC&lpg=PA195&ots=W7nh7z6p1Z&dq=orchestra%20UrlParameterNavigationHandler&pg=PA196#v=onepage&q=orchestra%20UrlParameterNavigationHandler&f=false > > Using the navigation-case configuration you are now able to pass the key > from one view to the other. > On the receiving side you have to use the parameterMap to fetch the key > and reload the entity then. > > It depends on your application if it is feasable to render the key in the > url. It makes them bookmarkable, but also vulnerable. > > > In this area it is hard to tell what is "best practice". > I normally use 1 or 2 and sometimes 2a .... :-) > > Ciao, > Mario > > -----Ursprüngliche Nachricht----- > Von: jid1 [mailto:ideligian...@velti.com] > Gesendet: Freitag, 18. September 2009 17:01 > An: users@myfaces.apache.org > Betreff: MyFaces Spring Orchestra Best Practice > > > hello, > > I am trying to implement the following: > > Backing bean A is used to render search results > Backing bean B is used to render the specific details of one result > > I am setting both beans to "conversation.access" and don't want to > 'access' > them from different components (as it's not supposed to be best practice) > > Also I could use: > <tr:setActionListener from="#{aBean}" to="#{bBean.selection}" /> > > But: > a. The first component will access the second in the JSF domain > b. I would like to do it from the backing bean so I can call > Conversation.getCurrentInstance().invalidate(); > > Can you please tell me the 'best practice' solution? > (ideally speaking these are in the same conversation, but let's say they > aren't). Any documentation links very welcomed!! > > Thanks > -- > View this message in context: > http://www.nabble.com/MyFaces-Spring-Orchestra-Best-Practice-tp25510295p25510295.html > Sent from the MyFaces - Users mailing list archive at Nabble.com. > > > -- View this message in context: http://www.nabble.com/MyFaces-Spring-Orchestra-Best-Practice-tp25510295p25530209.html Sent from the MyFaces - Users mailing list archive at Nabble.com.