| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/04/2009 21:41:01
|
robsonsilvar
Thread.start()
Membro desde: 31/07/2008 12:20:00
Mensagens: 39
Offline
|
Pessoal
Tenho uma duvida nas actions do struts. Para cada ação do usuario, usa-se uma classe action do struts que representa essa ação. Ex.: CRUD - um formulario para criação, seleção, atualização e deleção de clientes.
Nesse caso, eu poderia criar a seguinte estrutura:
Solução 1
criação de cliente
view - novoCliente.jsp
controller - InserirClienteAction -> chama metodo pra inserir
atualização de cliebte
view - atualizaCliente.jsp
controller - atualizarClienteAction -> chama metodo pra atualizar
Solução 2
ou posso criar uma unica ação pra inserir e atualizar. Entao ficaria:
view - Cliente.jsp
Controller - ClienteAction - chamar o metodo de inserir ou atualizar(se houver o id do cliente no formulario) um cliente
Dizem que a solução 1 é recomendado pq 2 ações(no caso inserir e atulizar) podem ter validações diferente, mas no caso da solução 2 eu poderia tratar essas validações dentro do ClienteAction.
Na solução 2 teria que criar dois formularios exatamente identicos, só que 1 pra inserir o outro pra atualizar. Na solução 1 eu tenho somente 1 formulário e uso este pra inserir e atualizar um cliente
Qual a melhor solução?
obrigado
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/04/2009 22:23:48
|
Rafael Carneiro
Moderador
![[Avatar]](/images/avatar/895df6a24c45297cb239065bcafa1fa4.jpg)
Membro desde: 31/03/2007 12:40:41
Mensagens: 809
Localização: Fortaleza
Offline
|
A "melhor" solução seria criar uma única classe Action (no seu caso, a classe ClienteAction). Para as telas, crie apenas uma tela para inserção e atualização. Depois, faça um esquema para deduzir que tipo de ação é para a tela (inserção ou atualização).
|
Rafael Carneiro
http://www.rafaelcarneiro.com | @rcarneiro | JForum |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/04/2009 05:49:05
|
AndreAlves
JavaBaby
![[Avatar]](/images/avatar/35296a4054db6816185054cbdc02e041.jpg)
Membro desde: 23/06/2007 14:32:00
Mensagens: 78
Localização: Santos/SP
Offline
|
Dá uma pesquisada em DispatchAction.
Para fazer CRUD é o ideal.
|
www.beginning-java.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/04/2009 13:41:53
|
robsonsilvar
Thread.start()
Membro desde: 31/07/2008 12:20:00
Mensagens: 39
Offline
|
Pelo que entendi, a DispatchAction(permite ter N metodos) é uma evolução da action(permite ter somente o metodo execute).
No caso desse meu exemplo(ClienteAction), eu definiria se é atualização ou inserção verificando se o campo idCliente no form esta preenchido.
No caso da DispatchAction, eu teria que dizer o metodo que eu quero via GET ou Post, por exemplo: Cliente.do?method=inserir. Se meu formulario tem somente o botão salvar, qual criterio que eu usaria para definir qual metdodo chamar(inserir ou atualizar) da minha DispatchAction sem conter logica dentro de um jsp?
Obrigado
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/04/2009 18:52:24
|
Anderson Leite
Java Ninja
![[Avatar]](/images/avatar/ab81265d898ef7f38a3e95fc98c2a669.jpg)
Membro desde: 03/03/2005 09:53:07
Mensagens: 275
Offline
|
no struts-config.xml coloque um parameter:
agora voce chama o metodo com
http://localhost:8080/suaapp/cliente.do?method=adicionar
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2009 10:49:05
|
robsonsilvar
Thread.start()
Membro desde: 31/07/2008 12:20:00
Mensagens: 39
Offline
|
Entendi Anderson,
Tenho uma outra duvida mais simples. Se eu tenho um unico formulario para inserir, atualizar e deletar, como eu resolvo o problema de ter somente um botao chamado "salvar" e outro "deletar" no meu formulario.
De alguma forma eu preciso chamar as Urls(http://.../cliente.do?method=adicionar e
http://.../cliente.do?method=deletar) dentro do botao salvar. Suponho que tenho que utilizar Js na chamar a Url correspondente de cada metodo
Abraços!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2009 13:37:27
|
gambamt
Thread.start()
Membro desde: 23/04/2009 12:31:03
Mensagens: 46
Offline
|
robsonsilvar wrote:Entendi Anderson,
Tenho uma outra duvida mais simples. Se eu tenho um unico formulario para inserir, atualizar e deletar, como eu resolvo o problema de ter somente um botao chamado "salvar" e outro "deletar" no meu formulario.
De alguma forma eu preciso chamar as Urls( http://.../cliente.do?method=adicionar e
http://.../cliente.do?method=deletar) dentro do botao salvar. Suponho que tenho que utilizar Js na chamar a Url correspondente de cada metodo
Abraços!
bom a grosso modo "if" na jsp, verifique de qual action se originou conforme o tipo esconda o outro botão.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/12/2009 10:07:52
|
inforjo
Thread.start()
Membro desde: 30/11/2009 13:42:59
Mensagens: 25
Offline
|
\
This message was edited 1 time. Last update was at 10/12/2009 10:17:54
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/12/2009 10:16:39
|
inforjo
Thread.start()
Membro desde: 30/11/2009 13:42:59
Mensagens: 25
Offline
|
Não sei criar uma classe action.
WEB_INF / classe / br / com/ x / x / x / action e form
quando abro não consigo modificar o arquivo.class
mudo a extensão e quando abro aparece codigo maluco.
|
|
|
 |
|
|