10 enganos comuns sobre o framework Spring  XML
Índice dos Fóruns » Notícias
Autor Mensagem
Kenobi
GUJ Master
[Avatar]

Membro desde: 14/11/2003 13:06:37
Mensagens: 1678
Localização: Brasil
Offline



Bom, SimpleFormController e MultiActionController são coisas bem distintas!
Mas, de qualquer maneira, talvez o que esteja procurando seja um 'MultiActionFormController' (http://opensource.atlassian.com/projects/spring/browse/SPR-1606).


Esse é o problema !! Eu conheço a hierarquia e ambos controllers são utilizados para tarefas parecidas, a diferença que no multiaction você pode ter concentrado num mesmo vários métodos e expor diretamente à aplicação, concentrando recursos num controller.

Sou fã de uma revisão como o proposto no link, realmente não acredito que tinha necesssidade de ser tão diferente, poderiam concentrar os serviços - infra na base e depois tudo bem mudar a hierarquia.


----------------------------------------------------------
SOA|EXPERT - http://www.soaexpert.com.br
SOA de um jeito simples e eficiente.
[WWW] [MSN] [ICQ]
Gerson
JavaChild
[Avatar]

Membro desde: 26/01/2003 19:48:37
Mensagens: 113
Localização: São Paulo
Offline

Kenobi wrote:

Bom, SimpleFormController e MultiActionController são coisas bem distintas!
Mas, de qualquer maneira, talvez o que esteja procurando seja um 'MultiActionFormController' (http://opensource.atlassian.com/projects/spring/browse/SPR-1606).


Esse é o problema !! Eu conheço a hierarquia e ambos controllers são utilizados para tarefas parecidas, a diferença que no multiaction você pode ter concentrado num mesmo vários métodos e expor diretamente à aplicação, concentrando recursos num controller.

Sou fã de uma revisão como o proposto no link, realmente não acredito que tinha necesssidade de ser tão diferente, poderiam concentrar os serviços - infra na base e depois tudo bem mudar a hierarquia.



Tinha sim!
Aí que tá, a diferença entre SimpleFormController e MultiActionController é muito mais que ''ter concentrado num mesmo vários métodos e expor diretamente à aplicação!
SimpleFormController foi criado para se trabalhar com formulário. Dê uma olhada no workflow em sua superclasse para entender a diferença:
http://www.springframework.org/docs/api/org/springframework/web/servlet/mvc/AbstractFormController.html#workflow
Já o MultiActionController é totalmente diferente, não está relacionado com um formulário. Dá até pra fazer binding também, mas não é binding de dados de um formulário. Ele, por exemplo, não diferencia uma submissão (normalmente método post) de uma requisição de formulário (normalmente get). É isso que precisa entender. Senão vai achar que tudo isso é loucura mesmo por serem tão diferentes. No Struts, por ex, os controller são todos iguais, independente de trabalhar ou não com formulário. O que muda é um raios de ActionForm associado no struts-config.xml.

Então, o que vc deve estar sentido falta no Spring é um controller que trabalhe com Form e ao mesmo tempo trabalhe com vários métodos como no MultiActionController, que é justamente a solicitação colocada no JIRA.



---

Gerson K. Motoyama
(SCJA, SCJP, SCWCD, SCBCD, SCEA-I)
[MSN]
Kenobi
GUJ Master
[Avatar]

Membro desde: 14/11/2003 13:06:37
Mensagens: 1678
Localização: Brasil
Offline

Gerson wrote:
Kenobi wrote:

Bom, SimpleFormController e MultiActionController são coisas bem distintas!
Mas, de qualquer maneira, talvez o que esteja procurando seja um 'MultiActionFormController' (http://opensource.atlassian.com/projects/spring/browse/SPR-1606).


Esse é o problema !! Eu conheço a hierarquia e ambos controllers são utilizados para tarefas parecidas, a diferença que no multiaction você pode ter concentrado num mesmo vários métodos e expor diretamente à aplicação, concentrando recursos num controller.

Sou fã de uma revisão como o proposto no link, realmente não acredito que tinha necesssidade de ser tão diferente, poderiam concentrar os serviços - infra na base e depois tudo bem mudar a hierarquia.



Tinha sim!
Aí que tá, a diferença entre SimpleFormController e MultiActionController é muito mais que ''ter concentrado num mesmo vários métodos e expor diretamente à aplicação!
SimpleFormController foi criado para se trabalhar com formulário. Dê uma olhada no workflow em sua superclasse para entender a diferença:
http://www.springframework.org/docs/api/org/springframework/web/servlet/mvc/AbstractFormController.html#workflow
Já o MultiActionController é totalmente diferente, não está relacionado com um formulário. Dá até pra fazer binding também, mas não é binding de dados de um formulário. Ele, por exemplo, não diferencia uma submissão (normalmente método post) de uma requisição de formulário (normalmente get). É isso que precisa entender. Senão vai achar que tudo isso é loucura mesmo por serem tão diferentes. No Struts, por ex, os controller são todos iguais, independente de trabalhar ou não com formulário. O que muda é um raios de ActionForm associado no struts-config.xml.

Então, o que vc deve estar sentido falta no Spring é um controller que trabalhe com Form e ao mesmo tempo trabalhe com vários métodos como no MultiActionController, que é justamente a solicitação colocada no JIRA.





Pode ser que tenha outra utilização, mas seria um pé no saco para um CRUD vc ter 3 ou 4 Controllers.

Acho que comeram bola nessa questão e espero que a solicitação do Jira seja atendida

----------------------------------------------------------
SOA|EXPERT - http://www.soaexpert.com.br
SOA de um jeito simples e eficiente.
[WWW] [MSN] [ICQ]
Gerson
JavaChild
[Avatar]

Membro desde: 26/01/2003 19:48:37
Mensagens: 113
Localização: São Paulo
Offline

Kenobi wrote:

Pode ser que tenha outra utilização, mas seria um pé no saco para um CRUD vc ter 3 ou 4 Controllers.

Acho que comeram bola nessa questão e espero que a solicitação do Jira seja atendida



Bom, para te ajudar enquanto não tem nada igual, como o command é o mesmo, sobreescreva o onSubmit() do SimpleFormController, faça a injeção de um MethodNameResolver, e use-o para determinar o método a ser chamado dentro do seu único Controller de acordo com a URL ou algum parametro.

---

Gerson K. Motoyama
(SCJA, SCJP, SCWCD, SCBCD, SCEA-I)
[MSN]
Kenobi
GUJ Master
[Avatar]

Membro desde: 14/11/2003 13:06:37
Mensagens: 1678
Localização: Brasil
Offline

Gerson wrote:
Kenobi wrote:

Pode ser que tenha outra utilização, mas seria um pé no saco para um CRUD vc ter 3 ou 4 Controllers.

Acho que comeram bola nessa questão e espero que a solicitação do Jira seja atendida



Bom, para te ajudar enquanto não tem nada igual, como o command é o mesmo, sobreescreva o onSubmit() do SimpleFormController, faça a injeção de um MethodNameResolver, e use-o para determinar o método a ser chamado dentro do seu único Controller de acordo com a URL ou algum parametro.


Já trabalho em alguns casos dessa maneira, e sinceramente não gosto muito.

Quando o projeto começa a crescer, você sente que tem muitos controllers e tarefa repetitiva demais.

----------------------------------------------------------
SOA|EXPERT - http://www.soaexpert.com.br
SOA de um jeito simples e eficiente.
[WWW] [MSN] [ICQ]
Gerson
JavaChild
[Avatar]

Membro desde: 26/01/2003 19:48:37
Mensagens: 113
Localização: São Paulo
Offline

Kenobi wrote:
Gerson wrote:
Kenobi wrote:

Pode ser que tenha outra utilização, mas seria um pé no saco para um CRUD vc ter 3 ou 4 Controllers.

Acho que comeram bola nessa questão e espero que a solicitação do Jira seja atendida



Bom, para te ajudar enquanto não tem nada igual, como o command é o mesmo, sobreescreva o onSubmit() do SimpleFormController, faça a injeção de um MethodNameResolver, e use-o para determinar o método a ser chamado dentro do seu único Controller de acordo com a URL ou algum parametro.


Já trabalho em alguns casos dessa maneira, e sinceramente não gosto muito.

Quando o projeto começa a crescer, você sente que tem muitos controllers e tarefa repetitiva demais.


Acho que vc nao entendeu o que eu quis dizer...
A solucao que estou colocando é pra somente um controller!

---

Gerson K. Motoyama
(SCJA, SCJP, SCWCD, SCBCD, SCEA-I)
[MSN]
 
Índice dos Fóruns » Notícias
Ir para:   
Powered by JForum 2.1.8 © JForum Team