As far as I know, even in JSF 2.0 its all server side. So for client side validation you either have to roll your own or find a suitable js library. I rolled my own for a company years ago and haven't found anything better than what we developed because you want a full featured client side js framework to be able to provide the following.
1) color the offending inputs
2) provide popups next to the inputs upon focus to tell what the problem is
3) validate all inputs at the same time so the user doesn't get that annoying "I'll only tell you one problem at a time behavior"
5) Unlimited custom logic
6) Built in date logic
Actually, based on my experience, client-side validation for many things can end up so messy that I found it easier to use server-side validation with AJAX.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.
Villains always have antidotes. They're funny that way. Here's an antidote disguised as a tiny ad:
a bit of art, as a gift, the permaculture playing cards