Tratamento de I18n para exceções na camada de negócio/per

Galera,

Estou iniciando no Struts, apanhando muito ainda… hehehe… mas vou chegar la.

Tenho uma classe de persistência JDBC, na qual preciso tratar uma SQLException. Fiz uma classe que “encapsula” exceções gerais de persistência, a “PersistenceException”. Aí capturo a SQLException e faço:

throw new PersistenceException(“Mensagem de erro relativa”);

Até aí, é o básico. Minha dúvida é: Como faço pra que, no meu Action, quando chegar esta exceção, ele troque por uma mensagem da erro do arquivo properties, permitindo a I18n?

Grato,
Buosi.

Olá,
Acho q vc pode passar a chave dessa frase do i18n na excessão:


throw PersistenceException("01234");

Aí na Action vc usar essa chave.
Se não me engano vc pode usar a classe I18NManager e tem um método que vc passa a chave e a lingua.
Ai fechô!!

Espero que ajude.

Falow!

Ok, eu posso passar a string chave do arquivo properties, e o ActionError já traduz, pensei nisso. O que não entendi é como passar um parâmetro, por exemplo, deu erro ao inserir o registro, apresentar uma mensagem tipo: “Erro ao gravar o cliente: CARLOS BUOSI”

Como passar esse parâmetro???

Olá,
Vc pode fazer a sua Exception receber uma classe pra isso ou até mais simples, um array de String (String[]), aí vc coloca quantas informações quiser.
Considero a primeira opção mais adequada por questões de organização.
Vc cria uma classe com campos para esses tipos de informação.

Ok?!

buosinet

vc pode colocar no seu properties assim:
errors.gravar.cliente=Erro ao gravar dados do cliente: {0}

dai no ActionErrors fica assim: … new ActionError(“errors.gravar.cliente”,getNomeCliente());

caso queira mais de um paramentro coloque, {0} {1}
e no ActionError(“chave”,par1, par2);; ou um array de quantos parametros quiser…

t+

Opa, agora entendi…

Muito obrigado, senhores.

Att,
Buosi.