Estou fazendo uma pagina com WebWork + Velocity + Hibernate, ainda estou nas telas de cadastro e gostaria de levantar uma discussão sobre a melhor forma de organizar uma action.
Por exemplo eu tenho um objeto chamado ATENDENTE, no cadastro o USUARIO pode salvar um atendente, localizar, excluir… a pergunta eh… Devo separatodos todos este comando e várias actions ou deixa tudo em uma soh?
O Localizar eu poderia enviar para outra action… onde ele localizaria o cliente … e para voltar no cadastro… eu chamo que action?? um localizar interno??
O Excluir, ele merece uma action separada?
devo criar:
novoAtendete.action
excluirAtendente.action
salvarAtendente.action
AtendenteLocalizar.action <-- Responsavel por localizar um cliente no BD
abrirAtendente.action <-- Este abre o Item localizado
E tem outra, para ter várias actions eu tereia que ficar toda hora no HTML alterando a propriedade action do form, para enviar para a action correta…
Alguem tem idéia de como resolver este probleminha?? Ou conhece um designer pattern pra isso…
Em algum lugar você vai ter que indicar qual a ação tomar, então você tem 2 opções:
Criar uma mapeamento de action para cada ação (salvar, editar, excluir, etc.) mas internamente poderá ter apenas uma classe com diferente métodos para cada uma dessas ações (fica fácil dar manutenção).
Mapear tudo para a mesma action e na view em cada formulário tem um campo hidden indicando qual a ação a ser tomada … esse esquema é xarope porque você amarra sua view a camada de negócios já que vai ter um punhado de ifs lá (feio).
Sim! Você chamava a action (no submit ou no link, como quiser) mais ou menos assim action.action!delete
O mapeamento era único mas a chamada variava (inclusive eu acho que o 2 continua permitindo essa notação, tem que testar pra ver).[/quote]
no 2.0 isto não estava funcionando, voltou a funcionar na versão que largaram esta semana.