ActionForm (struts) VS. Javascript

Completando o Marcio …
_ use javascript para auxiliar o usuário. Não como um mecanismo para garantir consistência.

Tem outra coisa… você pode usar o Struts para gerar o javascript de validação. Você pode economizar um trabalho.
http://struts.apache.org/userGuide/dev_validator.html

Existem três tipos de validação:

Léxico: pode ser garantido no javascript. Questiona se o objeto segue a forma de escrita correta. Exemplo: String Date = “dd/MM/yyyy”;

Sintático: deve ser garantido num objeto de controle. Garante que o objeto pertence ao domínio esperado, ou ainda se é aceitável dentro da gramática adotada. Exemplo: SimpleDateFormat.parse(date); // (neste caso, além de date estar no formato dd/MM/yyyy, ele ainda precisa ser uma data real no calendário gregoriano)

Semantico: deve ser garantida nas classes de negócio. Tem a ver com o significado no negócio… Como unicidade de um elemento, ou que toda sequencia seja acíclica, etc. Exemplo: Data de recebimento precisa ser menor igual a data do pedido.