Skip to content


Java Server Faces x Wicket: great framework of old paradigm vs new paradigm

Just beginning 2008, I went to a new area, new team at Globo.com. There are several promising projects for this year, and this team switch will make it easier for me to properly evaluate and judge what I consider the 2 leading Java web frameworks nowadays.Like I said here, on my spare time I (try to) develop a lawyer application which uses Apache Wicket as its web framework. One of the projects I’m now working at Globo.com uses Java Server Faces. This should be a great opportunity to finally go deeply on both frameworks and see in which cases each one is better than the other. Based on what i have already studied and used of both, i do have some opinions that may or may not change several months from now.

First, a little background. When i was studying to pass the SCWCD exam, I saw enough of tag libraries to get really sick of them :) JSTL, Struts 1.x Taglib, Expression Language, etc etc etc. Every new taglib was a new syntax to learn, and the result of using taglibs to implement complex web pages is the famous tag soup. Not being a purist, although I don’t like scriptlets in general, I do think that in some cases they produce much cleaner code than the heavy use of taglibs.

Having said that, let’s start talking about JSF. Being a standard technology backed by Sun, and present on Java EE 5 specifications, you know that you’re gonna find plenty of support by development tools, many examples on the web and an already mature community of users to help you. JSF offers a huge set of components ready to use, and many of them are very pretty and easy to use. In my case, we’re using JBoss Tools + Rich Faces, and the Eclipse plugins avaiable here are just awesome.

Most of the web applications I have worked until now used Struts 1.x, and although Struts is by far the most successful Java web framework til now, developing with JSF is reasonably easier and more pleasant. However, even considering the clear evolution of JSF over Struts 1.x, I still qualify both within the same paradigm. That is, both have a massive dose of non-markup code in their views, and if you’re gonna work with them, you better have your spoon ready to dig into the tag soup :) Ok, ok, JSF offers very nice components and manages a lot of the work that was left to the developer in the old times, such as managing the application state and offering a beautiful presentation layer without requiring the direct manipulation of javascript. But you’re still going to have your view layer full of taglibs, coding in a special syntax (the custom tags syntax) that will make it tough to track for problems when they happen within the tag soup. You better have a magical spoon to manipulate it ;)

Rather new in the Java web frameworks field is the very innovative Apache Wicket project. Wicket allows Java programmers to focus on what they do best: write Java code. No taglibs, how refreshing! :) Wicket also uses componentized development, and it isolates the view from your model in the best manner I have seen til now in Java frameworks. It does not seem so intuitive in the beginning, because you code for a web application in a similar way as you would code a Swing application. Specifically the component’s event handling code in Wicket reminds me a lot of the approach used in Swing applications.

Being a new framework that went out of the Apache incubation just several months ago, you can’t expect great tooling support at this point. Drag and drop tools to design screens? Forget about it! Component options similar to JSF ones? You’re not gonna find it either. However, Wicket has a very active community and it’s evolving fast. The second book on Wicket will be avaiable in a few months and the number of users and successful implementations is growing steadily. The set of avaiable components is growing and it’s becoming much easier to find support in their forums.

As I said, I’m far from an expert in both frameworks, and I hope this year I’ll have a long enough exposure to them and probably in a few months I’ll have more valuable opinions. Something I think about is that perhaps knowing Wicket and JSF well can be really useful, because it doesn’t seem like we have a “one size fits all” choice here. Wicket seems great for a company to base its developments and have good and maintainable code that will be easy to build over for several years. JSF certainly can offer that too, but i find it tough to consider taglib code as easy to maintain. However, JSF offers such great components that even a Java developer like me with no talent to create good looking pages is able to generate a very decent user interface.

I’ll confess I have a natural preference for Wicket since the beginning, but I promise I’ll try to evaluate these 2 options without any passion during this year and later this year I’ll post again telling my conclusions (if any) ;)

Posted in java.

Tagged with , , , , , , , , , .


4 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Eelco Hillenius says

    It never hurts to know multiple technologies. I hope you have fun in the process of learning them!

  2. blpsilva says

    Hi Eelco, I certainly do. Lots of fun! :) By the way, I really like your book! Wicket in Action (through MEAP) helped me understand most of the things I found a bit confusing on Pro Wicket. I’m really looking forward to get it full and in print, right beside me on my desk :) Congratulations for the great book so far, and for the work done in the framework!

Continuing the Discussion

  1. Grails - ótima ferramenta para alguns projetos « Bruno Pereira linked to this post on 19/04/2008

    [...] equipe nós já temos uma aplicação com JSF, que na verdade foi concebida ano passado, antes da minha mudança de equipe. Eu estou usando o Wicket em um projeto pessoal e ainda estou aprendendo o framework, ainda não o [...]

  2. Bruno Pereira » Blog Archive » Grails - ótima ferramenta para alguns projetos linked to this post on 29/06/2008

    [...] equipe nós já temos uma aplicação com JSF, que na verdade foi concebida ano passado, antes da minha mudança de equipe. Eu estou usando o Wicket em um projeto pessoal e ainda estou aprendendo o framework, ainda não o [...]



Some HTML is OK

or, reply to this post via trackback.



  • anxiety medications
  • buy augmentin
  • treatment of congestive heart failure
  • prescription pills
  • skin care treatment
  • naturally lower cholesterol
  • natural teeth whitening
  • how does levitra work
  • hard stool constipation treatment
  • hepatitis b symptoms treatment
  • anti-smoking websites
  • tadalafil professional
  • alcoholism treatment program
  • dog thyroid
  • antibiotics pregnancy
  • generic for zocor
  • body building product
  • hair loss
  • zoloft 50mg
  • buy body building prescription
  • how sleeping helps
  • muscle spasms
  • cancer medication
  • cholesterol zocor
  • parkinson's drugs
  • arrhythmias and treatments
  • muscle pain treatment
  • osteoporosis help
  • cialis cheap
  • natural dog remedies
  • hypertension medications pharmacy
  • elavil dose
  • most effective weight loss products
  • celebrex buy online
  • health product woman
  • living with heart failure
  • weight loss after preganancy
  • diabetes treatment drugs
  • low back pain relief
  • prevention of lung diseases
  • treatment of aids
  • viagra on-line
  • online medications without a prescription
  • buy acto plus
  • antidiabetic medications
  • generic plavix
  • pain med without a prescription
  • levaquin urinary
  • on line pharmacy
  • osteoarthritis medicine knees
  • 5mg cialis generic
  • discount viagra generic
  • canadian pharmacies
  • treating hair loss
  • new drug for arthritis
  • help with snoring problems
  • natural medicine for bone loss
  • pravastatin
  • alcoholism treatment
  • antibiotics no prescription
  • order perscription drugs online
  • discount birth control perscriptions
  • cheap phentermine online
  • arthritis of the neck
  • womens hair loss
  • buy diabetes drugs
  • propecia for hair loss
  • zantac prevacid
  • weight loss supplements that work
  • little penis
  • buy kamagra jelly
  • heart attack woman
  • dog skin remedies
  • cholesterol reducing medicines
  • cost of clomid
  • drugs used for hypertension
  • pain cure
  • over-the-counter diuretics
  • women body building
  • propecia pharmacy
  • levitra facts
  • discount medicine
  • attention deficit hyperactive disorder
  • prescription drugs on line
  • online medication
  • drugs that reduce swelling
  • tramadol generic name
  • cat hairball remedies
  • alternative hair loss cures
  • women taking viagra
  • drugs fda
  • viagra and buy
  • treatment of breast cancer
  • benefits of vitamin d
  • cure acne
  • what are the effects of klonopin
  • list of free prescription drugs
  • anxiety celexa
  • problems breathing
  • prescription clonazepam
  • cure hypertension
  • prescription drugs without prescription
  • infertility treatment
  • muscle burning pain
  • menopause cures
  • med orders
  • dementia treatment
  • types of blood pressure medicine
  • bodybuilding drugs
  • aids treatment
  • buy valium in uk
  • buy 10 mg cialis
  • buy medication
  • metronidazole dose
  • prozac and pregnancy
  • rapid hair loss
  • side effects of valium
  • treatment for hepatitis c
  • sildenafil kamagra
  • viagra with out prescription
  • help for sleeping problems
  • phentermine without prescription
  • fast weight loss cheap pills
  • sleep aids
  • next day medication
  • diet pills without a prescription
  • online generic drugs
  • retin a buy
  • buy viagra soft online
  • control blood pressure
  • online pharmacies no prescriptions
  • withdrawal zoloft
  • sleep disorders
  • cialis cheap
  • blood cholesterol
  • dog antibiotics
  • trental drug
  • where to get viagra
  • cures for hair loss
  • list of antibiotics drugs
  • order diovan
  • claritin versus zyrtec
  • drug discount codes
  • viagra cheap prescription
  • discount stop smoking prescription
  • allegra drug
  • viagra users
  • obesity diet help
  • hair loss product treatment price
  • phentermine pills
  • prozac pill
  • retin a cheap
  • strong erection
  • zoloft discount
  • prescription pain medicines
  • best male enhancement drugs
  • help with snoring problems
  • prevention of lung diseases
  • canada drug pharmacy
  • female sexual enhancement pills
  • where to buy ambien
  • effects side viagra
  • buy all drugs
  • healthy dog foods
  • plan b pregnancy
  • new adhd drugs
  • body building sites
  • cheap pain medications
  • alzheimers drugs
  • levitra effect
  • phentermine 90 pills
  • smoking cessation drugs
  • online drug stores
  • how do you prevent bone loss
  • mexican pharmacy online
  • thyroid pill pet
  • medical heart failure
  • viagra for sale without a prescription
  • diabetes meds
  • cholesterol and health
  • chronic itching and swelling in skin
  • discount anxiety drugs
  • cheap viagra in uk
  • quitting zyban
  • order phentermine diet pill
  • online pharmacy carisoprodol
  • how to relieve back pain
  • medications to help clot blood
  • new adhd drugs
  • what is valium used for
  • taking zoloft
  • doxycycline dose
  • order diovan
  • gaining muscle mass
  • discount medicine
  • coreg dosage
  • drugs for pain
  • cheap no prescription viagra
  • coupon claritin
  • soma price