Pros and Cons of Various Java Web Presentation Layer Technologies

后端 未结 8 674
一向
一向 2020-12-08 12:06

I\'m currently working on a web app that makes heavy use of JSF and IceFaces. We\'ve had some discussions of moving to another presentation layer, and I thought I\'d take th

相关标签:
8条回答
  • 2020-12-08 12:15

    My opinions are quite heavily biased towards Wicket because I've been using it for a while after tripping over JSP mines far too many times.

    Wicket PROs:

    • True separation of layout and code.
    • Component based which means high reusability of site elements; For example you can create prettified form with automatic labeling and CSS styles and everything and just by changing it's DAO object in the component's constructor it's completely reusable in another project.
    • Excellent support for things like Ajax, Portlets and various frameworks in general directly out-of-the-box AND more importantly it doesn't rely on anything else than slf4j/log4j to work, everything's optional!

    Wicket CONs:

    • Development has some confusion about things in general and Wicket generics are a bit of a mess right now although they've been cleaned a lot in 1.4
    • Some components (like Form.onSubmit()) require extensive subclassing or anonymous method overriding for injecting behaviour easily. This is partly due to Wicket's powerful event-based design but unfortunately it also means it's easy to make a code mess with Wicket.

    Random CONs: (that is, I haven't used but these are my opionions and/or things I've heard)

    • GWT is JavaScript based which sounds stupid to me. Main issue is that it reminds me too much of JSP:s and its autogenerated classes which are horrible.
    • Tapestry doesn't separate markup and code properly in a manner which could be easily validated between the two which will cause problems in the future.
    0 讨论(0)
  • 2020-12-08 12:15

    What about Stripes?

    0 讨论(0)
  • 2020-12-08 12:17

    In short:

    = JSF =

    PROS:

    • component architecture;
    • many libraries & tools;
    • somewhat good IDE support

    CONS:

    • heavy weight, both in CPU/memory and learning curve;
    • when something doesn't work as expected, it's difficult to debug

    = WICKET =

    PROS:

    • lightweight;
    • sensible templating system;
    • good tutorials;

    CONS:

    • reference documentation is not so well organized and deep as are the tutorials;
    • development team had some serious difficulties, especially when becoming and incubated project. This lead to confusion on important aspects of the framework, at that time I had to switch to another framework because of this...
    0 讨论(0)
  • 2020-12-08 12:25

    I've used GWT for a couple small projects. Here are some things I like about it:

    1. It's ajax by default, so I didn't have to make it do ajax, it just came along with using GWT.
    2. It's got good separation of client versus server-side code.
    3. I can unit-test my client code using junit
    4. It lets you built crisp, snappy apps, largely because it's ajax.

    Things I don't like:

    1. Some things don't work as expected. For example, I've seen cases where click events didn't fire as expected, so I had to do a workaround.
    2. Auto-deploy to tomcat running in eclipse sometimes just stops working, and I could never figure out why.
    0 讨论(0)
  • 2020-12-08 12:30

    See my comparison of Wicket and Tapestry 5: Difference between Apache Tapestry and Apache Wicket.

    0 讨论(0)
  • 2020-12-08 12:35

    My pick would be Wicket. Have used it and is gives excellent re-usability. It has one of the most vibrant forum/mailing list. As a question and its gonna be answered in minutes. It has excellent support for AJAX. One of the usual cons attributed to Wicket is the steep learning curve. Well those were one of the old age cons which hold no value anymore now.

    JSF: Better stay away from it. Another team which developed a project on JSF is now thinking to shift to Wicket after our success with it.

    @Megadix: Like you said the documentation was poor in the beginning, but not any more. There is an excellent book called Wicket in Action written by the developers of Wicket. The sample code provided on the site is also a good place to start and learn

    0 讨论(0)
提交回复
热议问题