Struts 2 is a request based MVC web application framework. In multi-tiered applications its used as the presentation layer. Seam on the other hand is an application framework that can be used to build fully fledged enterprise applications (think spring). It enhances
JSF a lot (JSF is another web framework, but it's component based rather than request based), and integrates it with
EJB (if you want to use it) SEAMlessly (hence the name). It has a lot of features. If you want to learn more about it, look
here for an overview, or get Seam in Action for the details