Pros and Cons of Various Java Web Presentation Lay

2019-01-17 04:15发布

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 the discussion out into SO and see what the experts think.

I'm curious if anyone could weigh in on the pros and cons of the various Java presentation layer technologies. If you've only worked with one, say why you love it or hate it. If you've worked with several, give your impressions of how they stack up against each other.

Our technologies under consideration are:

  • IceFaces
  • JSF (without IceFaces)
  • GWT (Google Web Toolkit)
  • Wicket
  • Tapestry

And if I'm missing anything from my list, let me know.

Thanks!

8条回答
你好瞎i
2楼-- · 2019-01-17 05:01

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.
查看更多
贪生不怕死
3楼-- · 2019-01-17 05:07

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.
查看更多
登录 后发表回答