Atualmente eu estou desenvolvendo uma aplicacao WEB em JAVA utilizando o framework struts 2 e a biblioteca javascript YUI para a interface com o usuario. Apesar do trabalho inicial para deixar tudo redondinho (curva de apredizagem), os dois estao dando otimos resultados. O struts 2, que nao e baseado no struts 1, esta mais simples e facil de configurar alem de ter ganhado mais flexibilidade e estar melhor estruturado. O ponto fraco e que a documentacao deixa muito a desejar, possui poucos detalhes e os exemplos sao muito simplistas. Isso me rendeu muitas dores de cabeca e bastante trabalho de pesquisa pra conseguir botar algumas coisinhas simples para funcionar. O YUI e uma otima biblioteca javascript para montar interfaces com o usuario ricas. Funciona razoavelmente bem com a maioria dos navegadores e e simples de usar. Simplicidade pra mim e essencial e o YUI tem uma grande vantagem: e possivel criar os componentes (menus, dialogos, botoes, etc) atraves do markup alem da opcao de fazer tudo via javascript. Dessa forma seu codigo fica mais legivel e semantico na hora do desenvolvimento e voce tem um controle maior do HTML. O ponto fraco e que quando alguma coisa nao funciona voce tem que funcar com atencao para encontrar o erro e existem alguns poucos bugzinhos na versao 2.4.1 que atrapalham mas sao contornaveis.Combinando tudo isso eu consegui uma boa solucao para minha interface com o usuario porem restaram algumas brechas. Apesar de o struts ter, desde a primeira versao, uma boa solucao de validacao que gera, inclusive, validacao do lado cliente, eu nao estava completamente satisfeito. Se voce tem telas simples que funcionam com apenas uma action, o struts 2 te atende perfeitamente neste quesito. Porem quando as coisas comecam a ficar mais complexas e sofisticadas, o custo de personalizar a validacao cliente para atender as suas necessidades cresce. No struts 2 a validacao cliente ficou nos temas. Se voce quiser alterar o javascript de validacao cliente tera que editar o arquivo form-close-validate.ftl do tema XHTML. Eu considerei muito trabalhoso edita-lo para atender meus requisitos de validacao cliente. Eu precisava de uma solucao mais pratica e simples. Uma rapida busca no google e eu encontrei uma solucao alem das minhas expectativas:o plugin Validation do JQuery.O JQuery e, basicamente, uma biblioteca javascript que facilita a manipulacao do DOM via javascript. Ele permite a navegacao (atravessamento) de forma simplificada atraves de uma linguagem simples de selecao. O JQuery dota seus objetos DOM de funcionalidades que facilitam seu acesso e manipulacao e permite, atraves de plugins, a adicao de fucionalidades de forma nao intrusiva. O Validation e um plugin para JQuery para validacao de formularios HTML.Utilizando o ValidationA utilizacao do Validation consiste basicamente na definicao das regras de validacao do seu formulario. Voce pode tambem personalizar as mensagens de erro, como elas sao apresentadas e controlar a aparencia dos campos com erro. Tudo no Validation pode ser personalizado, sua documentacao e bem completa e a pagina do plugin possui uma colecao completa de demos com diversas situacoes comuns. O Validation faz validacao por campos, porem voce