Colin Chalmers schrieb:

> 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.
>    Can someone comment on this as to what works for them?
> 

Myfaces has an integrated state history you can enable/disable
I do not have the exact infos on it, but it has been working
well for almost a year now.
The back button is indeed not a problem anymore not even in server side
state saving, in client side one the state is pushed into the html code
anyway.

> 2. Bookmarking pages
>    I've seen workarounds with servlet-filters. Does MyFaces have a
> solution or should I be looking at Jsf_sping?
> 
Bookmarking is not possible in post situations, restfulness can
be achieved via outputlink and dedicated params.
Commandlink enforces a form post which is not restful.

Http get is ommitted from jsf.
(but can be simulated via outputlink)

There might be other solutions but that is what you get out of the box.
(Some systems can provide dedicated nav handlers which push you to a
generic entry page if you bookmark inside of a form)

> 3. Google findable
>    Is anyone able to tweak faces to allow Google to crawl and index?
> 
see above, to my knowledge you have to plan ahead and make the
crawlabel data restful which means you need a
page hierarchy being able to be crawlable. Which means, make
commandlinks for the pages you need to be crawled.


> 4. Initializing data-sources
>    We had an ugly workaround to init/destroy data in backing-beans. I
> see that Shale has methods for this (aptly called init/destroy)
>    How do others do this with *basic* myfaces to ensure that data is
> retrieved once during the life-cycle?
> 
For now Shale is probably the best option you can get currently, besides
seam.

If you are in an orm context, there will be another option soon,
the new myfaces fusion project addresses this issue very similar to Seam
(Currently it is in development, but something usable will be there soon)

Which means you work in conversation contexts and you have an open
connection/entity manager per conversation, the objects are kept
in ram as long as the conversation is open, and you can synchronize them
back to the db via flush()

once the conversation is done, everything is dropped.

Seam does it that way, fusion also, but fusion is not quite there yet to
be easily usable (will be soon however)

The restfulness of those systems and the bookmarking ability is another
issue. If you bookmark a conversation system, under best circumstances
it should push you to a dedicated page outside or at the begin of the
conversation, which lets you start anew.



Reply via email to