Hi Jurgen,

Jurgen Lust schrieb:
> Hello,
>
> I've successfully added orchestra to my Faces web applications, using
> MyFaces 1.2.2, Facelets and JBoss RichFaces. Normal Ajax operations
> with a4j:commandButton and the likes work as they should, but the
> rich:datascroller does not.
>
> I have created a custom ExtendedDataModel for a rich:datatable, using
> Hibernate, based on what I found on the JBoss forums. I added this
> datamodel as a bean in conversation scope. Now, when I open the page
> in two browser windows it seems as if the datascroller is using the
> model in session scope, because when scrolling in one window, the
> selected range in the other window is also updated.
>   
I don't think this problem is a "table scroller" problem; isn't it due
to having two concurrent open windows?

Handling multiple windows is always a difficult problem with webapps.

By default, orchestra does share conversations between multiple windows.
The problem is that it is almost impossible for a webapp to *know* that
they are different windows; all a webapp sees is two consecutive
requests with the same cookies (hence same http session). It would be
great if some future version of the http spec ensured a "window-id" http
header was included in each request....

Using request-scope obviously avoids this issue, because there is no
state to be kept.

Orchestra does provide support for multiple concurrent windows via its
"conversation context" feature, but it requires some cooperation from
the webapp and the user. By default, a parameter is added into the url
so that different windows can be associated with different conversation
instances on the server. You've probably seen the
"?conversationContext=n" added to the url when using orchestra. If a new
window is created *without* this parameter, then a new set of
conversations are associated with that new window. One way to do this is
to create a link with the "target" property set, and then to wrap that
link in the <o:separateConversationContext> tag (which just blocks the
appending of the special query param).

See:
 
http://myfaces.apache.org/orchestra/myfaces-orchestra-core/tlddoc/index.html

Regards,
Simon

Reply via email to