Spring itself is an object factory. Spring MVC is a set of objects that the Spring team developed as their vision of a web application framework. Some people like it. Some people don't.
A webapp framework, like Struts or Spring MVC, isn't about what technology instantiates the objects, but how the instantiated objects interact. Spring has already added Don's Struts-Spring extension to the distribution, which indicates that Struts has a strong following in the Spring community. The nice part about Spring is that, like Chain, it is also useful on the business layer. -Ted. On Mon, 29 Nov 2004 15:44:39 -0800 (PST), David Graham wrote: > Spring also provides a webapp framework. Why would a user bother > using Struts with Spring when they could use Spring with Spring? > > David > > --- Ted Husted <[EMAIL PROTECTED]> wrote: > >> Spring is designed to instantiate any given object graph, which >> should include the Struts configuration objects. It would seem to >> follow that we could configure everything in Struts from a Spring >> configuration file. If so, then we would not be adding another >> framework, but using Spring in lieu of the Digester and an >> assortment of custom factories. >> >> Is not Spring MVC (which is very much like Struts) configured >> from a Spring configuration file? >> >> Ideally, an application should be able to use as many, or as few, >> configuration files as it likes. >> >> -Ted. >> >> On Mon, 29 Nov 2004 10:47:07 -0800, Don Brown wrote: >> >>> Good point, however the use of intelligent defaults would >>> simplify things. I'd see it this way: >>> >>> 1. struts-config.xml - Defines action mappings. Default config >>> could use wildcards to cover 90% of mappings. Ted's "extends" >>> idea would also help keep it small. >>> 2. forms.xml - Combines dyna action forms and validator rules >>> into one logical document. I suppose this could be combined >>> into struts- config.xml. If so, it would follow Ted's idea of >>> one config file DTD to rule them all. >>> 3. spring.xml - Yes, it does define actions, plugins, etc >>> separately from struts-config.xml, but this allows you to more >>> easily hook application classes into your implementations. For >>> example, you can write an Action that can automatically get >>> reference(s) to your services layer or DAO layer. This is >>> important as it not only makes things simpler for the user, but >>> is yet another step that removes the user from >>> >>> ever having to work with the application scope. One feature I >>> really like about Tapestry (probably JSF too) is they don't put >>> all sorts of application and framework objects in shared scopes. >>> >>> Tiles could probably be woven into struts-config.xml, and I'm >>> still not convinced there is much to be gained from a Struts >>> and JSF combination (outside the usual migration arguments). >>> >>> Don >>> >>> David Graham wrote: >>> >>>> --- Craig McClanahan <[EMAIL PROTECTED]> wrote: >>>> >>>> >>>>> I agree with Don's assessment, but wanted to add an FYI >>>>> note -- Shale does zero-config for #3 (because the mapping >>>>> between a JSP page and the corresponding ViewController is >>>>> implicit), and doesn't require #1 unless you need it for >>>>> doing Commons Validator stuff. >>>>> >>>>> Simpler is definitely better. >>>>> >>>>> >>>> But is adding yet another framework to Struts simplifying >>>> anything for the user or just for us developers? If we add >>>> Spring, we would need to know the following to write a Struts >>>> webapp: 1. struts-config.xml 2. validator-rules.xml 3. >>>> spring.xml (or whatever they call the config file) 4. >>>> possibly tiles-config.xml 5. possibly jsf config files >>>> >>>> How is learning and remembering up to 5 different >>>> configuration files better for the user? If I was put in >>>> this position, I would seriously consider other ways of >>>> writing Java webapps. >>>> >>>> David >>>> >>>> >>>>> Craig >>>>> >>>>> >>>>> On Mon, 29 Nov 2004 10:03:16 -0800, Don Brown >>>>> <[EMAIL PROTECTED]> wrote: >>>>> >>>>> >>>>>> struts-config.xml accomplishes the following tasks: >>>>>> >>>>>> 1. Defines form models >>>>>> 2. Defines and configures Actions >>>>>> 3. Defines and configures mappings of actions 4. Defines >>>>>> and configures plugins 5. Defines and configures message >>>>>> resources 6. Defines and configures request processor >>>>>> >>>>>> I see Spring vastly improving, if not completely >>>>>> replacing, #2, #4, >>>>>> >>>>>> >>>>> #5, >>>>> >>>>> >>>>>> and #6. It could even be argued #1 should be moved into >>>>>> a form definition file that integrates validator field >>>>>> configuration. >>>>>> >>>>>> Therefore, I'd imagine a Springified Struts only needing >>>>>> struts-config.xml for #3, defining action mappings, with >>>>>> probably another configuration element to point to the >>>>>> Spring >>>>>> >>>>>> >>>>> context/BeanFactory >>>>> >>>>> >>>>>> file for the module (loaded as a child of a global Spring >>>>>> context/BeanFactory) and the bean id's the request >>>>>> process, message resources, and plugins can be found >>>>>> under. >>>>>> >>>>>> Don >>>>>> >>>>>> Joe Germuska wrote: >>>>>> >>>>>> >>>>>>> <snip /> >>>>>>> >>>>>>> >>>>>>>> The more we go down this road of more robust >>>>>>>> configuration/initialization, the more I think we are >>>>>>>> going to realize Spring already does this and does it >>>>>>>> better. >>>>>>>> >>>>>>>> >>>>>>> I suspect you're right, as I have come to prefer >>>>>>> Spring's >>>>>>> >>>>>>> >>>>> BeanFactory >>>>> >>>>> >>>>>>> to Digester for this kind of thing. Have you ever >>>>>>> looked at configuring Struts completely using Spring? >>>>>>> It might be an interesting exercise, along with >>>>>>> possibly coming up with an XSLT process to make current >>>>>>> Struts config files usable with Spring! >>>>>>> >>>>>>> Joe >>>>>>> >>>>>>> >>>>>> ---------------------------------------------------------- >>>>>> ---- ------- To unsubscribe, e-mail: dev- >>>>>>[EMAIL PROTECTED] For additional commands, e- >>>>>> mail: [EMAIL PROTECTED] >>>>>> >>>>>> >>>>> ------------------------------------------------------------ >>>>> ---- ----- To unsubscribe, e-mail: dev- >>>>>[EMAIL PROTECTED] For additional commands, e- >>>>> mail: [EMAIL PROTECTED] >>>> >>>> >>>> __________________________________ >>>> Do you Yahoo!? >>>> The all-new My Yahoo! - What will yours do? >>>> http://my.yahoo.com >>>> >>>> -------------------------------------------------------------- >>>> ---- --- To unsubscribe, e-mail: dev- >>>>[EMAIL PROTECTED] For additional commands, e- >>>> mail: [EMAIL PROTECTED] >>>> >>>> >>> ---------------------------------------------------------------- >>> ---- - To unsubscribe, e-mail: dev- >>>[EMAIL PROTECTED] For additional commands, e-mail: >>>[EMAIL PROTECTED] >> >> >> ------------------------------------------------------------------ >> --- To unsubscribe, e-mail: [EMAIL PROTECTED] For >> additional commands, e-mail: [EMAIL PROTECTED] > > > __________________________________ > Do you Yahoo!? > The all-new My Yahoo! - Get yours free! > http://my.yahoo.com > > > -------------------------------------------------------------------- > - To unsubscribe, e-mail: [EMAIL PROTECTED] For > additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]