> -----Ursprüngliche Nachricht----- > Von: Michael Jouravlev [mailto:[EMAIL PROTECTED] > Gesendet: Dienstag, 10. Mai 2005 23:58 > An: Struts Users Mailing List > Betreff: Re: StrutsCatalogInputOutputSeparation > > One more thing: > > On 5/10/05, Leon Rosenberg <[EMAIL PROTECTED]> wrote: > > Now seriously. Using ActionForms for result presentation is just a > > matter of bad style, it doesn't mean, that struts is > badstyles, after > > all, everything, that can be misused, will be :-) > > So, you are saying that using ActionForm for output is a bad style. > Depends. Consider this situation (about 80% of this is copied > from my reply to Nancy Lin): > > * There is permanent storage (database) > * There is business object, which can be loaded from database. > * There is a temporary area in the session ("current item") > * "Current item" contains a working copy of persistent > business object (along with messages, more on them further). > Current item is the one that you are editing or viewing. > * There is an action mapping, which does not care, where the > data that it shows, comes from. All it knows, that when is > receives object ID, it must show object's data. > * When [form/action/whoever on that location] receives object > ID, it checks "current item" first. If "current item" has > object with needed ID in it, form uses object's properties. > * If object with needed ID is not loaded in "current item", > then current item is discarded, object is loaded from > database into current item and is displayed. > * When Cancel is clicked, current item is disposed, database > is not affected. > * error messages are stored in the "current item" along with > business object, but messages themselves are not part of > persistent object. > * each time page is reloaded, messages are redisplayed > * when changes are reset or canceled, messages are cleared. > > Now, in my older application I use a separate object to store > "current item". But if one has only one object on the page, > one can as well use form bean as a "current item". Form bean > scope would be set to session, and it would store error > messages, as well as reference to the business object. > > Also, as you can see, the action which displayes the item, > does not accept input of item data. There is a completely > separate action for that. editItem action does not care where > the data is, and is it new or existing. It just takes ID and > pulls the object for presentation. > > You may consider this bad style, but I think it is convenient.
Hmm, never seen such an object before :-) I mean the object must be _completely_ plain, not one field which is "decorated", only 100% the data, the user entered previously? I mean, if you would forget about your object sharing, and create an "input" and an "output" object from scratch, the result would be 100% identical? In this case, and only in this case, the above method would be "right" (in terms of good coding style, etc), but in this case I doubt, that you need an object at all. Since you object is just an encapsulation of properties, without ANY functionality ever, you'd be better served with a set or map of properties. Regards Leon --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]