Intermixed.

On 2/25/07, Colin Chalmers <[EMAIL PROTECTED]> wrote:
Hi all,

I'm evaluating  different frameworks to enhance our use of Myfaces and
address the following questions.

After reading through the Shale docs it's still unclear to me if/how
shale tackles these problems, I'd appreciate some input from those
more familiar with shale/faces with respect to the following:

1. The browser Back-button
   when the user clicks on the browser back-button he should be taken
back a page without loss of data .
   I've seen comments about client/side state saving in connection with
cache expiry settings
   I've also seen solutions based on seam & shale when in a particular
flow, how is this tackled in shale?


For non-dialog pages, Shale offers a mechanism to detect that a
duplicate form submit, via use of the "token" component that will
create a validation error in such cases.  This can be used to avoid
things like double charging to a credit card if the user tries to
check out with a shopping cart twice.

If you are using the "basic" dialog manager feature, you have a couple
of choices that can be configured at runtime with a context init
parameter:

* "none" -- ignore the fact that the user might be using the back arrow
 instead of your "previous page" button.  This is perfectly reasonable in
 use cases like a wizard dialog when you're just collecting a bunch of
 data on multiple pages, and it does not matter if values get re-entered.

* "top" -- ask the dialog manager to save and restore state information
 so that, if the user presses the back arrow, anything previously entered
 on that page is undone.  This does *not* support crossing into subdialogs
 because it only saves state for the topmost subdialog (if there is
more than one).

* "stack" -- like "top", but allows you to cross subdialog boundaries as well.
 The tradeoff is it takes more space/time to save and restore the
state information,
 because the entire stack is processed.

The SCXML version of the dialog manager operates in a manner similar
to the "stack" option by default, since it does not have the same
concept of subdialogs as the "basic" implementation.

2. Bookmarking pages
   I've seen workarounds with servlet-filters. Does Shale solve this and
if so how?

The most reasonable approach to this (for all Java based web
frameworks, not just JSF or Shale) is to do the following:

* Use the "redirect after post" pattern, so that when you navigate to
a different page,
 this is done with an HTTP redirect instead of a
RequestDispatcher.forward().  This
 causes the browser's URL to show the new page as expected, but costs you the
 extra network round trip.

* Make your application support both GET and POST requests.  With Shale, this
 is particularly easy because you can grab request parameters in the
init() method
 (if you are using the Shale view controller facility) in order to
react differently.



3. Google findable
   Is Shale able to help in getting the pages Google findable?

What features or capabilities do you believe are necessary to make
pages "Google findable"?  For the most part, using techniques that
create bookmarkable URLs will deal with most such issues (although
expecting a search engine to index a dynamic application doesn't seem
very likely to yield useful results), but it sounds like you have
something else in mind as well.


thx in advance

Colin



Craig

Reply via email to