title: Migration from Struts 1.2 -> Struts2 vs Spring-MVC (primarily vis-a-vis Struts1.2 taglib support)
body: <p><strong>Primary Question: If my app is CURRENTLY using Struts 1.x - and I am considering migrating to EITHER Spring-MVC or Struts2 for the MVC-framework - is there anything about either one that would make it easier to migrate from Struts1.2?</strong> </p>
  
  <p><em>To clarify, I am NOT asking whether SpringMVC or Struts2 is better overall (there are a number of existing Q's on SO that address this) - just which one is easier to migrate to from Struts1.2.</em></p>
  
  <p><strong>The point that I am most interested in from a migration perspective: possibility of continuing</strong> (in the beginning) <strong>to use struts1.x's taglib within the JSP pages, while changing to Struts2's (or SpringMVC's) API on the backend.</strong> (In other words, can either of these frameworks support Struts1.x's taglib as a plugin)? <em>[Note: this is not intended as a long term solution - but would reduce integration pain, since the JSPs would not need to be immediately rewritten. I assume this question makes sense - if not, please expain why]</em></p>
  
  <p><strong>With that said, I am of course interested in any other migration advantages.</strong></p>
  
  <hr>
  
  <p>Some background:</p>
  
  <p>I am working on an app whose MVC layer is written via Struts 1.2. We are also using Spring IOC - though the app doesn't currently have strong integration between the Struts layer and Spring's DI facilities. <em>(Note: This is something that we plan on correcting when we refactor, but my understanding is that with a bit of planning - this can be done properly/efficiently even when using a Spring IOC+Struts2 combination.)</em></p>
  
  <p>As part of improving/refactoring the codebase - we would like to upgrade to a more modern MVC framework (so as to eliminate the need for Action/Form classes, and to use Annotation-based configuration when possible, etc) but keep the overall classic-MVC style <em>(i.e. not currently interested in making the leap to JSF, Tapestry, GWT, Flex, Play, etc. I understand that these are very very different things - lumping them together just to give a general idea..)</em> Also, the desire is to go with something with reasonable traction/momentum - so ruling Stripes out for that reason. This seems to only leave Spring-MVC &amp; Struts2 as contenders (though if there is something else with a similar style and with strong industry traction - we would certainly consider it)</p>
  
  <p>It is a given that switching to either of these would require a descent amount of work - but the plan would be to do it on a modular level. For that reason, if either of these supported Struts 1.2's taglib - it would make switching/testing much easier (as we could then code a particular module's "Control" implementation in the new API - and have a 2nd server run the old Struts1.2 implementation using the same jsps. QA testing would then be "apples to apples" in a way. Does this make sense, or would this approach (if even feasible) lead to more headaches than it would resolve?</p>
  
  <p>Also, as stated above, while my primary question is about running struts1.2's taglib with either Spring-MVC or Struts2 - I am also interested in any other MIGRATION advantages for Struts2-vs-Spring-MVC.</p>