WebWork is a web application MVC framework. XWork is a generic command pattern implementation with nifty features for processing requests (i.e. web requests, command line, JMS, etc.). WebWork is built on XWork.
In this way, WebWork overlaps with Spring's MVC framework.
XWork also contains a simple IoC container. This is really meant for small apps where you have a few components you want to automatically provide to your Actions (and you don't need more than one of the same type). It's really really handy for these situations because you don't need any per-Action configuration. It falls short of the capabilities of a Spring or Picocontainer IoC container.
So there is some overlap, but there is more synergy, I think. There is good integration between WebWork and Spring, much of it done by the guys at Atlassian. They are building their new product, Confluence, on WebWork 2, Spring, Hibernate, Sitemesh, Lucene, Quartz, etc... They have the power of WebWork and XWork as a powerful Web MVC front end, along with the power of Spring to automatically wire components together, and Hibernate's transparent persistence. From the feedback I've heard from them, it's an awesome combination.
In this way, WebWork overlaps with Spring's MVC framework.
XWork also contains a simple IoC container. This is really meant for small apps where you have a few components you want to automatically provide to your Actions (and you don't need more than one of the same type). It's really really handy for these situations because you don't need any per-Action configuration. It falls short of the capabilities of a Spring or Picocontainer IoC container.
So there is some overlap, but there is more synergy, I think. There is good integration between WebWork and Spring, much of it done by the guys at Atlassian. They are building their new product, Confluence, on WebWork 2, Spring, Hibernate, Sitemesh, Lucene, Quartz, etc... They have the power of WebWork and XWork as a powerful Web MVC front end, along with the power of Spring to automatically wire components together, and Hibernate's transparent persistence. From the feedback I've heard from them, it's an awesome combination.