Tratamento de erros

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. :wink:

[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! :smiley:

Lembrado que ActionError é deprecated, você deve usar ActionMessage e adicioná-la ao ActionErrors.

Muito bem lembrado!