Vita Rara: A Life Uncommon

A Weekend with WebWork


Categories: | | | | |

I spent the better part of the weekend with "WebWork in Action" by Partick Lightbody and Jason Carreira. I did this because WebWork 2.3 == Struts 2. I wanted to come up to speed on this to make sure that I was not leaving something behind. Originally it was my plan to implement Quadran with JSF, but I'm unsure of that plan. It's a very large change for us as an organization, therefore I'm taking a more detailed survey of the landscape to see where the web framework world is.

As I've said in the past we have been a Struts 1.2 house for some time now. I do feel though that Struts 1 has run its course and that basing a new project on it would be short sighted, although I'm sure it would work, as Struts 1 is a proven framework. Therefore the evaluation of the options.

Overall I'm impressed with WebWork 2.2 and the direction that Struts 2 is taking. It looks like a good blending of the best practices from Struts 1 combined with the flexibility that has been brought about by things like Inversion of Control, using JavaBean backing beans in place of form beans, and filters in place of deep abstract action hierarchies.

At this point I think I'm down to WebWork/Struts 2, Spring MVC, or JSF.

Struts 2 and Spring MVC are by far the most similar. It's a fine grained toss up between the two, if one really wanted to choose. I think integrating both of them into a project the scope of Quadran is not unrealistic. I would like people to be able to write plug-ins for Quadran in the platform they are comfortable with. So, we might integrate both.

JSF is in a category all its own. It's quite different than either WebWork/Struts or Spring MVC. The mishmash that is the expression language soup in JSF really bothers me. I know that it will be addressed in the future, but right now it's a mess. Plus the fact that everything is a post, making deep linking a serious challenge bothers me.

That's it for now. Off to pound out some code today. Enough theoretical work for now.