What is the web framework du jour for Java these days?

August 5th, 2007

I hate building webapps. I’ve even gone so far as to swear that I would never work on another.

I guess I lied as I need to select a web app framework for an application.

I’m poking around at frameworks, and well, I’m lazy. Maybe you can help. I’m thinking of:

  • Stripes - James raved about it a while back. Possibly shiny object of the day though.
  • Struts 2 - Hooray for simple action based frameworks.

Things I’m not thinking about:

  • Tapestry - sorry Howard, my mind doesn’t work like yours.
  • Seam - Its JSF, which seems (no pun intended) to mean it will still suck. Is everything still required to be a POST?
  • jRoR - I’m not ready to introduce a new language into the mix
  • Grails - see above
  • Spring Web Flow - seems to require a helluva lot of XML. I could be wrong.

Thoughts?

28 Responses to “What is the web framework du jour for Java these days?”

  1. peter royal Says:

    i’ve heard wicket pimped a bunch

  2. Geert Bevin Says:

    Dan, you know what I would talk to you about … ;-)

  3. Ivan Says:

    Man, Seam is not all POST. You can do a completely REST-style application with it, just read the docs.

  4. Guillaume Laforge Says:

    Come on, Dan, for a talented Java developer like you, Groovy isn’t such a different language at all. You should try Grails! You won’t regret it.

  5. Chris Moesel Says:

    Hi Dan,

    You might want to check out Matt Raible’s comparison of web frameworks that he presented as OSCon:
    http://raibledesigns.com/rd/entry/oscon_2007_comparing_java_web

    He also recently blogged an interesting chart showing mailing list activity for many of the frameworks:
    http://raibledesigns.com/rd/entry/open_source_web_frameworks_mailing

    Also, Spring MVC does support Convention-over-Configuration, which reduces the XML by a lot. I really like Spring MVC, but the only other one I’ve used is Struts 1…
    http://www.springframework.org/docs/reference/mvc.html#mvc-coc

  6. Glen Mazza Says:

    Since you prefer action-based over component-based frameworks, and since you don’t code web apps every day (and so probably would not benefit as much from learning a new web app framework from scratch), you may wish to take a look at Spring Web MVC[1]. It is a much more modern improvement over Struts 1.x, and probably pretty close to what you can get with Struts 2.0. I had a lot of success with it on a previous account.

    The big benefit of Spring Web MVC is that working with it also reinforces and strengthens overall Spring knowledge. There is a pretty good book[2] and user forum[3] over it as well.

    Note that Spring Web MVC is not the same as Spring Web Flow–for work I had done in the past I turned out not to need the latter. AFAIK there is nothing you can do with SWF that you can’t do with Spring MVC–SWF just provides an optional abstraction that may or may not simplify things for you.

    [1] http://www.springframework.org/docs/reference/mvc.html
    [2] http://www.amazon.com/Expert-Spring-MVC-Web-Flow/dp/159059584X
    [3] http://forum.springframework.org/forumdisplay.php?f=25

  7. Gregg Bolinger Says:

    A lot of how you choose a framework depends on what you expect out of a framework. For me, it’s simplicity first, and then in no particular order;

    Stay out of the way - Any framework where I spend half my development time saying “Now how do I do this using this framework?” I want to steer clear of.

    Less is more - The less a framework tries to solve the better. Get my request, do some validation, hand off to some service, deliver the response. Anything more is beyond it’s domain.

    Be current - JDK 1.4 was great. But I’ve moved on. Take advantage of the syntax sugar of Java5. Embrace change.

    XML ShmeXML - Hello, Annotations? Yes, they aren’t for everything, but they can do wonders to reduce XML configuration.

    So far, Stripes is the only framework that fulfills my requirements. There are probably more, but that’s all I could come up with at the moment.

  8. Brian McCallister Says:

    I think we are in web framework nuclear winter.

  9. Matt Raible Says:

    I think it all depends on the type of application you’re building. I’ve worked on quite a few projects helping companies choose a web framework and often found it’s easy to eliminate many of them based on 1) the application being developed and 2) what developers (both web and java) want in a framework. More thoughts on this on my blog:

    http://raibledesigns.com/rd/entry/choosing_a_jvm_web_framework

  10. Eelco Hillenius Says:

    Unlike most other Java frameworks, Wicket is centered around plain Java programming (opposed to having DSLs and a declarative programming model). XFire is one of my favorite Java libraries because it has a nice Java API/ is programmer friendly. You might like Wicket for the same reasons.

  11. Restless Says:

    Hmmm, programmer friendly… give http://wingsframework.org a shot.

  12. Geert Bevin Says:

    Well, if you’re interested in the Grails and jRoR, take a look at RIFE too. You can just continue using Java, no need to learn a new language.

  13. qinxian Says:

    I wonder there is no one refer to ZK1.
    I not know, You had ignored it or not.
    If done, maybe I big wrong.
    If not, try is worth.
    BTW, not shot my english, you get it, right?

  14. florin Says:

    Dan, you may remember JPublish (http://code.google.com/p/jpublish/)?! A traditional supporter of FreeMarker and Velocity. You have the BSF support for scripting actions (bsh, jruby, js, groovy, jpython, etc), DWR support through a recent added module, works great with Spring (examples included), supports Textile syntax via a simple JPublish component, is extensible and enforces a good separation of roles and concerns. I am currently banging against the walls in my attempt to add StringTemplate as another template Viewer … but that’s another story :) Try it if you want and let me know how it goes. Cheers!

  15. Kyle Adams Says:

    My perspective: Stripes is the best Java framework out there right now, hands down. Struts 2 is the framework with corporate buy-in that’s the closest to Stripes. If you’re interested, bug me about it at the next GR-JUG meeting.

  16. Michael Ward Says:

    Have a look at Waffle (http://waffle.codehaus.org). It’s been in development for a few years and recently combined forces with VRaptor. Some of the benefits of Waffle are:

    1) No XML configuration required (besides the web.xml)
    2) No complicated API - Controller are simply POJO’s
    3) Use whatever view technology you want (JSP, FreemMarker, Velocity, even ERB if you want to use JRuby)
    4) Built in Dependency Injection support
    5) Not annotation heavy - (no annotation required if you use ParaNamer support)
    6) Easy to test

    Cheers,
    Mike

  17. tinca Says:

    Here we are! Just ask for what to use and you will get back all the currently available frameworks (save those whose supporters didn’t find this blog)
    :-)

  18. Joshua Jackson Says:

    C’mon Dan. Seam adds several components that is missing from JSF such as s:link that doesn’t POST but a regular URL redirect

  19. Payday Loan Says:

    Quick Pay Day Loan No Fax can be very easy to get approved for with Cash Loans Payday applicants in the market for cash advance during a crunch prefer online cash advance companies.

  20. Url Redirection Says:

    Hello, Nice blog posting about What is the web framework du jour for Java these days?. I would have to agree with you on this one. I am going to look more into url redirection. This Saturday I have time.

  21. pk11 Says:

    by far the best two imho:
    http://waffle.codehaus.org/
    and
    http://www.vraptor.org/

  22. Nina Moric Says:

    Hey!…I found your site via Yahoo! when i was searching for cash flow model, and this post regarding What is the web framework du jour for Java these days? really sounds very interesting to me.. Thanks.

  23. Rene Pawlitzek Says:

    Have you looked at Hamlets? It is easy-to-use and easy-to-understand. You can learn it in 20 min. It is suitable for smaller web applications. Everything is in Java with complete separation of Java and HTML. Simple and fast.
    http://hamlets.sourceforge.net

  24. apply for providian credit card Says:

    apply for providian credit card

    appealer predication sorted formants!humorous confronted

  25. homeowner insurance ratings Says:

    homeowner insurance ratings

    fabrics Coleman corruptions:

  26. i migliori deposito bonus del casinò online italiano Says:

    i migliori deposito bonus del casinò online italiano

    minstrel articulateness parker!

  27. bingo games missouri Says:

    bingo games missouri

    Neff range facings

  28. application for home equity loans Says:

    application for home equity loans

    seasonable:recitation lossier:pretentious totaller unpublished.

Leave a Reply