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:[email protected]]
> Gesendet: Freitag, 18. September 2009 17:01
> An: [email protected]
> 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.