I have not spent much time with Spring 2.0, but I doubt that the issues at hand are substantially different than with Spring 1.x.

Struts 1.3.x is backwards compatible with Struts 1.2.x in most important ways (there's a Wiki page detailing issues.) However, depending on what parts of Spring's struts-integration libraries you use, you may find that certain Struts 1.3 features are not available or do not behave as expected.

Specifically, Spring 1.x provides a custom implementation of the Struts Request Processor. You can use Struts and Spring together without using it, but if you choose to use it, you must understand the issues I'm going to try to explain here.

Struts 1.3 attempted a substantial refactoring of request processing so that custom functionality would be more easily integrated without running into the limitations of Java single-inheritance. People found that they wanted behavior that was implemented in two different custom Request Processors (usually the TilesRequestProcessor and something else) and had to wrestle with how to achieve that. Those of us who wanted to write reusable extensions to the request processing cycle had to consider extending both the TilesRequestProcessor and the base RequestProcessor, and if someone wanted to put in even more customizations, this quickly becomes totally unworkable.

If you use Spring's custom request processors in Struts 1.3.x, you will lose some new functionality which is only implemented in commands which are part of the new ComposableRequestProcessor's command chain. This mostly has to do with other uses of the commons-chain integration (like per-action and per-forward command execution), but also a little bit with the exception handling, where Struts now handles exceptions a little better when they occur in the midst of tiles.

Struts 2.0 doesn't even use the same RequestProcessor, and I'm sure that the Spring folks haven't tried to write integration code with either Struts 1.3.x or Struts 2.0 since they've only recently seen full releases.

Joe



At 9:20 AM -0500 10/5/06, Bruno Melloni wrote:
I decided to use Spring 2.0 with Struts for my next project.  But I
can't find info on the highest version of Struts that I can use with it.
This is what I found:

- Spring 2.0 comes with some parts of Struts 1.2.9, so it would be the
"safe bet".

- The latest Struts 1.x is 1.3.5.  It seems to have done significant
repackaging, but I am not clear whether it is "supposed to be" backward
compatible to 1.2.9 or not.

- Struts 2.0 is out, but from what I read it is quite different from
1.x, and makes me doubt that it would be compatible with something that
was built for 1.2.9.  I also heard that it still has a few bugs...
normal for a software version ".0".

Can someone bring some light into this darkness?

---

On a separate but related question...  RAD 6 comes with Struts 1.1
(hopelessly outdated).  Can it be upgraded to a more recent Struts
version?  If yes, it is probably documented somewhere, could you point
me to the docs?  Of course, it might be something as simple as including
the desired version of struts in the WEB-INF/lib folder and ignoring the
version that came with RAD 6.

Thanks.


--
Joe Germuska
[EMAIL PROTECTED] * http://blog.germuska.com

"The truth is that we learned from João forever to be out of tune."
        -- Caetano Veloso

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to