> In my opinion, trying to abstract that stuff away in a web application > causes to more problems than it solves, especially where back buttons and > bookmarks are concerned.
We haven't found this to be the case. Our servers are sessionless, so bookmarks work fine. Back buttons aren't any more or less of a problem. I actually haven't heard of any problems with our sub-forms and back buttons. People do bookmark URLs with form context, but that's a good thing. It usually is the login page and they login and it automatically restores the page which they thought they bookmarked (which redirected to login in the first place). > I think it's easier to take a state machine > approach, the way CGI::MxScreen or Apache::PageKit do. I don't think this works. The state machine can manage states going forward, but not backward. Consider the problem of a Symbol Lookup on our site (www.bivio.com). We come into it from just about any accounting page having to do with a stock transaction. It's a single task, which looks up the ticker and fills it in in the Calling form. You need to stack the state or you have to introduce N new states (for entry from forms A, B, C, D, ...). It did take about two years to come up with a decent implementation of FormContext. It's a non-trivial problem, but it can be generalized and it solves the problem we had. Rob