In a typical Java EE web application, there’s almost always the problem of where to put the validation. Of course there’s only one place where validation belongs: in the model. So if you’re e.g. using EJB as persistence layer, the EJB Entities is where the validation code belongs. However, from a usability point of view, one never wants to leave all validation out of the UI code. This often leads to duplicate validation code. While not ideal, duplicate validation code is often considered as inevitable.
Yesterday I stumled upon Apache MyFaces Extensions Validator (a.k.a. ExtVal, formerly sev-en), a JSF based solution that looks very promising. I did not have a chance to try it myself yet, but it promises some nice things: