| ". He is going to present an updated comparison comparing Struts/Struts2, Tapestry, Wicket, MyFaces (JSF), Spring MVC and Stripes at the upcoming " "I have only listed some of the most well known frameworks in this article. There are many more available, and too many to list all of them here. If I left out a framework that you feel strongly about, please leave a comment and let us all know about it. If there are additional things you think about when choosing a Java Web framework, let us know those as well." "ICEfaces provides a very easy way to make Ajax applications with the standard JSF components (as well as the custom ICEfaces components). It also supports Ajax Push, which makes it possible to update the page from the server independently of user interaction. ICEfaces works well with Seam and Facelets." "Small correction: Spring MVC makes it a trivial to use alternate view/templating technologies other than JSP. In fact, a project I am working on uses Freemarker." "I added IceFaces and FreeMarker to the list. I also made an additional note that about using templating technologies instead of JSPs in some frameworks. Thanks for the comments." "* The Struts 2 tags fully support Velocity and FreeMarker, and in fact the tags are created using FreeMarker templates." "* Struts 1 supports writing Actions in any Bean Scripting Framework language. (I?m sure this could also be done for Struts 2 if there was any interest.) There?s also been a lot of work on Groovy actions for Struts 2 lately." "- how much does it cleanly separate your web/HTML design team from the Java dev team?" "I have touched upon some of these aspects in this blog post about Wicket where I have tried to draw some comparisons with other frameworks." "Facelets is *not* a JSF implementation. It?s an alternate ViewHandler implementation that can be used with any JSF implementation. The current JSF implementations are, for the 1.2 spec, the RI (http://javaserverfaces.dev.java.net), and, for the 1.1 spec, the RI and the aforementioned MyFaces." "I like this list a lot for choosing something new if you don?t already have an investment, but how about ?What are you using now?? Many shops already have expertise in whatever they have used before and while that alone isn?t justification to stay where you are, that it certainly influences what choices you realistically have." "I think my article or others like it can be used to decide on Platform X, given you already know Platform Y. Of all the items I listed, I think the decision to go action based vs component based is one of the biggest and is why I listed those two items at the top of my list. If you have a team with Struts experience, then Struts2, Spring MVC, Stripes and Grails may all be good choices as they are all ?action based?. However, there are so many factors in play, so I don?t think I would make my entire decision on that alone." "I don?t think there is any definitive answer to what is the best path. JSF is a also a valid path, and many like the fact that it is a J2EE standard. This hopefully will allow you to learn one API and work with multiple implementations such as MyFaces or IceFaces." "I have seen some articles on migrating from Struts to Struts2, but I don?t have the experience to give you a good answer on how much of the migration is a rewrite." "Excellent work, specially categorizing the different kinds of frameworks. There are little works on the Internet as clear as yours." "[?] An interesting take on categorizing popular web frameworks - I?d love to see this represented graphically - Tufte disciples - get crackin?! [?]" " Action based frameworks generally map actions (defined in an HTML form or URL) to code in the controller tier of the application. Action based frameworks are the most popular type of framework. Most developers have had at least some exposure to these kinds of frameworks. The most popular Java Web framework, " " Component based frameworks create a component abstraction in the view tier. Event listeners capture user actions and map back to code in the controller tier. I am of the opinion that component based framework have a steeper learning curve than action based frameworks. Some will counter that component based frameworks offer greater productivity, once the framework is learned. Programming in a component based framework can sometimes feel like programming Java Swing components. " " Page based frameworks allow you to develop application made of many Web pages. To implement these Web pages, the developer creates HTML (using JSPs or templates), JavaScript and CSS files. All action based frameworks (that I know of) and some component based frameworks are page based. Most of these frameworks now have good support for AJAX. Because you write the Web tier yourself, you also have a lot of control and the ability to adhere to Web standards. Struts is a page based framework. " "Examples: Struts, Struts2/WebWork, Spring MVC, Stripes, Ruby on Rails (requires JRuby to run in Java), Grails, RIFE, JavaServer Faces (JSF) implementations (MyFaces), Tapestry, RIFE, Wicket" " New AJAX frameworks such as Google Web Toolkit, require you to only code in Java. They then generate the entire Web tier for you, so you don?t have to code the HTML, JavaScript or CSS. You will still need to understand CSS concepts in order to style you components. This may be attractive you if you or your team doesn?t have much experience with JavaScript and CSS or you want to keep all of you application ... read the whole article |