Last year I started development on eHour, an open source timesheet project.
eHour started off with a Struts, Spring, Hibernate stack. This week eHour version 0.6 was released and during the last few weeks the choice for Struts started to be an annoyance. Initially I chose it because I have the most experience with it and I wasn’t particularly keen on alternatives such as JSF (7 life cycles you said? it’s a webframework right ?). However I’m starting to regret my Struts choice a bit as the re usability of Struts code is very low and also the lack of any AJAX support or Dojo integration makes the whole environment a bit brittle.
Regarding the re usability of Struts. Of course you can re-use JSP blocks with Tiles but that’s only on a JSP level, it doesn’t cover re-use of the code that actually provides the data for the JSP. Also I want to be able to swap in components for different versions. OSGi comes to mind but I didn’t investigate if it’s possible to include struts-configs in a bundle.
Also there’s no AJAX support in Struts. What I did up to now is just create separate actions for any AJAX requests. It works but it basically means keeping my Javascript and Java code in sync… manually.
So, time for a change. Considered a few webframeworks but in the end I liked the Wicket for it’s Java-based approach but still using HTML for markup and the lack of XML based configuration files.
The problem I’m having with Wicket so far is the lack of documentation. Hence this blog in which I’ll post on my quest on converting a Struts, JSP, JSTL, Dojo, Tiles, POI, JFreechart, Acegi, Spring application to a Wicket, Dojo, POI, JFreechart, Acegi, Spring one. Stay tuned!
