On 6/5/06, Adam Brod <[EMAIL PROTECTED]> wrote:

Hi-

JBoss Seam provides addition Scopes beyond Request, Session, Application
and None.  In particular, JBoss has a Conversation Scope that stores your
data for the duration of a specific conversation.  This frees the
developer from stuffing data in the session and then manually removing it
at the end of the dialog.

Does Shale Dialog offer that functionality?  I want to configure my bean
with Scope=Dialog.  It would live for the duration of the dialog, and then
to be automatically destroyed by the Dialog Manager.


Shale's dialog feature[1] does indeed support this kind of state
saving/destroying, although it is not directly treated as a separate scope.
Instead, Dialog provides a way for your application to store a context
object (in session scope) that stays in existence for the remainder of a
particuar conversation with the user, then is thrown away for you.  The
simplest sort of object to use would be a Map implementation with arbitrary
keys.  Alternatively, you could construct a context class with properties
specific to the particular use case of each dialog.  JSF components can be
bound to this state object with a standard value binding expression
(something like "#{state.data.foo}" to get to a property or map entry named
"foo"), so your learning about all the techniques you already use to bind
components to request scoped objects carries over.

Note that there are currently some outstanding bugs in this area of Shale,
particularly with respect to having more than one dialog active at the same
time (either on the same page, or across windows) -- but the basic
functionality works well for a single active dialog.  These issues are high
on my priority list to get them addressed, because I feel this is mission
critical before a 1.0 General Availability release of Shale.

Please let me know what I can do.

Thanks,

Adam Brod
Product Development Team


Craig

[1] http://struts.apache.org/struts-shale/features-dialog-manager.html

Reply via email to