Pessoal,
tenho uma webapp com struts e minha action chama uma classe intermediária que valida as regras de negócio e chama o(s) dao(s) para executar as operações.
Como deveo fazer o tratamento de erro? Explico:
Suponhamos que vc mandou vender para um cliente. Passou pela action, ela criou um objeto de business e chamou o método venderParaCliente(). Aí o vender para cliente acessou vários daos e descobriu que não pode vender pois o valor das parcelas em aberto é maior que o limite do cliente.
Como minha classe de negócio deve retornar o erro para a action?
Como a action deve retornar o erro para o usuário, na mesma página?
Queria fazer com que campos em branco aparecessem com um label acima deles, tipo: “Preencha o campo nome”, por exemplo:
Sei que existe o validator mas queria fazer validações server-side.
Pelo pouco que vi acho que terei que utilizar a classe ActionErrors. É isso? alguém pode me ajudar?
Abraço.
[quote=Bjornn Borg]Suponhamos que vc mandou vender para um cliente. Passou pela action, ela criou um objeto de business e chamou o método venderParaCliente(). Aí o vender para cliente acessou vários daos e descobriu que não pode vender pois o valor das parcelas em aberto é maior que o limite do cliente.
Como minha classe de negócio deve retornar o erro para a action?
[/quote]
Lançando uma Exception, tipo, VendaNaoPermitidaException. Aí você trata isso na action, e mostra uma mensagem bonitinha pro usuário. 
[quote=Bjornn Borg]Queria fazer com que campos em branco aparecessem com um label acima deles, tipo: “Preencha o campo nome”, por exemplo:
Sei que existe o validator mas queria fazer validações server-side.[/quote]
O Struts-Validator também faz validações server-side. Dê uma olhadinha aqui:
http://struts.apache.org/userGuide/dev_validator.html
[]'s
Aquih mesmo no guj ha bastante coisa sobre isso…
O Struts Validator te permitirá fazer o tratamento tanto server-side qto client-side…
Procure sobre coisas como org.apache.action.ActionErrors, org.apache.action.ActionError e suas utilizações…
Sem dúvida encontrará muito código de referencia aquih no GUJ mesmo…
Dois segundos eh sacanagem Caio! 
Lembrado que ActionError é deprecated, você deve usar ActionMessage e adicioná-la ao ActionErrors.