I am planning a Web Application and I am currently evaluating Frameworks. I have done a lot with Ruby on Rails in the past, but since this app will rely on a lot of code already written in Java and will run on an Application Server infrastructure, it will be in Java, too.
So far I looked at several Frameworks and Spring MVC (3.0) looks the most promising for what I’ve planned. I like how many concepts are similar compared to Rails: front controller, push views and restful URLs.
However, I am still unsure about the view part. I want to be able to have one (or more) application templates that have the basic structure of my website, with logo, footer etc. This template will have some dynamic areas, such as a navigation section etc. (in Rails speek, yield :navigation) Some of the view code, especially forms will be reused; that's why something like partials would be nice, too.
My frontpage might look like this:
+-------------------------------+
| Application.tmlp |
| |
| +-------------------------+ |
| | index.tmpl | |
| | | |
| | +-------------------+ | |
| | | | | |
| | | login_partial.tmpl| | |
| | | | | |
| | +-------------------+ | |
| | | |
| +-------------------------+ |
| |
+-------------------------------+
So far I found Velocity, Freemarker and Tiles, but I am still unsure which one fits my need best. I like the template concept because I would like some designer to create the templates.
Something that would also be nice but is not as important as the template concept, are automatically created links like the link_to helper from rails:
link_to "Profile", :controller => "profiles", :action => "show", :id => @profile
Which View implementation for Spring MVC comes closest to this? Thanks a lot!