Action do struts  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
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


Rafael Carneiro
Moderador
[Avatar]

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
[WWW] [MSN]
AndreAlves
JavaBaby
[Avatar]

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
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
Anderson Leite
Java Ninja
[Avatar]

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

[WWW] [MSN]
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!
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.
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

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.
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team