Dúvida Struts 2 em relação ao ActionDispatcher do Struts 1

3 respostas
P

Opa ;D

Existe algo parecido com o ActionDispatcher no Struts 2? Será que preciso criar 1 classe extendo a ActionSupport para cada transação que eu for fazer em uma mesma tela?

Abs

3 Respostas

L

Bom, não conheco Struts 1. Mas o que seria essa operação de “dispatch”? Se for chamar uma ação atrás da outra, é só adicionar no result a próxima action, porém com tipo “chain”. Assim:

<action name="insere" class="leonardo.MinhaClasse">
    <result name="inserido" type="chain">consulta</result>
</action>

No exemplo, caso o método insere() da classe MinhaClasse retornar a String “inserido”, será chamada a action consulta da mesma package. A action continua um POJO normal, não precisando estender ninguém.

Era essa a sua dúvida?

P

Opa :smiley:

Entao Leonardo, minha duvida diferente. Vamos imaginar uma tela de CRUD referente a uma unica entidade. Nela eu teria os metodos listar uma tabela, deletar e alterar. Nao tem como eu usar uma unica Action para esses 4 metodos ao inves de criar uma action pra cada coisa?

Com o uso do ActionDispatcher, eu conseguir passar um parametro e este parametro caia em um metodo da minha Action. Entendeu?

Abs.

L

padcoe:
Opa :smiley:

Entao Leonardo, minha duvida diferente. Vamos imaginar uma tela de CRUD referente a uma unica entidade. Nela eu teria os metodos listar uma tabela, deletar e alterar. Nao tem como eu usar uma unica Action para esses 4 metodos ao inves de criar uma action pra cada coisa?

Com o uso do ActionDispatcher, eu conseguir passar um parametro e este parametro caia em um metodo da minha Action. Entendeu?

Abs.

Ahhhh! Aí é mais fácil! É só criar uma action com os métodos desejados:

public class UsuarioAction {
   public String insere() {}

   public String atualiza() {}

   public String lista() {}
}

E aí configure algo assim:

<action name="usuario_*" class="exemplo.UsuarioAction" method="{1}">

Assim, a URL usuario_insere vai para o método insere() de UsuarioAction. A URL usuario_lista vai para o método lista(). E assim vai.

Criado 21 de março de 2009
Ultima resposta 23 de mar. de 2009
Respostas 3
Participantes 2