Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/07/2005 14:23:34
|
passos
![[Avatar]](/images/avatar/9bf31c7ff062936a96d3c8bd1f8f2ff3.png)
Joined: 23/07/2005 16:04:09
Messages: 48
Offline
|
Tenho por padrão nos projeto MVC toda e qualquer requisição passar pelo controlador, mesmo que seja para repassar esta para uma view.
Não seria interessante ja ter no framework algo como:
Code:
public class ForwardAction extends BaseAction {
/* (non-Javadoc)
* @see org.mentawai.core.Action#execute()
*/
public String execute() throws ActionException {
return SUCCESS;
}
}
|
A programação hoje é uma corrida entre os engenheiros de software que lutam para construir programas maiores e mais à prova de idiotas e o universo tentando produzir idiotas maiores e melhores. Até então, o universo está vencendo (Rick Cook) |
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/07/2005 14:28:50
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Não entendi...
Vc especifica se é Forward, Redirect, etc no Application Manager.
Uma action do jeito que vc falou só serviria para apenas uma página JSP.
O que vc quer fazer?
|
Sergio Oliveira
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/07/2005 14:51:42
|
passos
![[Avatar]](/images/avatar/9bf31c7ff062936a96d3c8bd1f8f2ff3.png)
Joined: 23/07/2005 16:04:09
Messages: 48
Offline
|
Não quero que a minha action faça nada so repasse para a view mas com o conceito de que tudo passe pelo controle e quando eu quiser fazer alguma alteração no projeto alterar apenas no controle (ApplicationManager)
Code:
ActionConfig ac = new ActionConfig("/FormCadastro", ForwardAction.class);
ac.addConsequence(ForwardAction.SUCCESS, new Redirect("/cadastro.jsp"));
Deu mais ou menos pra entender?
|
A programação hoje é uma corrida entre os engenheiros de software que lutam para construir programas maiores e mais à prova de idiotas e o universo tentando produzir idiotas maiores e melhores. Até então, o universo está vencendo (Rick Cook) |
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/07/2005 14:53:13
|
passos
![[Avatar]](/images/avatar/9bf31c7ff062936a96d3c8bd1f8f2ff3.png)
Joined: 23/07/2005 16:04:09
Messages: 48
Offline
|
Uma outra opção seria nao ter o ForwardAction mas o ActionConfig aceitar apenas uma string (a URI) mas que particularmente nao acho legal!
|
A programação hoje é uma corrida entre os engenheiros de software que lutam para construir programas maiores e mais à prova de idiotas e o universo tentando produzir idiotas maiores e melhores. Até então, o universo está vencendo (Rick Cook) |
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/07/2005 15:08:39
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Acho que o que vc quer é proteger os seus JSPs, evitando o acesso direto a eles.
Isso é uma boa prática, mas confesso que eu nunca fiz isso.
É uma boa prática pois por exemplo te permite fazer todo o controle de acesso nas actions, não necessitando da tag <mtw:requiresAuthentication />.
O que eu acho que dá para fazer é colocar todos os seus JSPs no WEB-INF e fazer o forward normalmente para /WEB-INF/jsp/cadastro.jsp.
Acho que a solução correta aqui é criar actions normalmentes, fazendos os forwards quando for necessário. Acho que Inner Action cai como uma luva pra isso. Por exemplo:
Code:
ac = new ActionConfig("/Registration", Registration.class);
ac.addConsequence(HelloMentawai.SUCCESS, new Forward("/WEB-INF/jsp/cadastro.jsp"));
ac.addConsequence(HelloMentawai.SUCCESS, "register", new Forward("/WEB-INF/jsp/welcome.jsp"));
ac.addConsequence(HelloMentawai.ERROR, "register", new Forward("/WEB-INF/jsp/cadastro.jsp"));
addActionConfig(ac);
E o código da Action:
Code:
public class Registration extends BaseAction {
public String execute() throws ActionException {
return SUCCESS;
}
public String register() throws ActionException {
// ... lógica que faz o registro do cara no banco...
// ... retorna SUCCESS ou ERRO
}
}
E aí para acessar vc teria:
http://www.something.com.br/Registration.mtw => Cai no cadastro.jsp
http://www.something.com.br/Registration.register.mtw => Cai na welcome.jsp (se for SUCCESS) ou no cadastro.jsp (se for ERROR) e deve ser utilizado no ACTION de um formulário html.
O que acham disso ??? Faz sentido ??? Tem outro jeito melhor ???
|
Sergio Oliveira
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/07/2005 15:24:22
|
passos
![[Avatar]](/images/avatar/9bf31c7ff062936a96d3c8bd1f8f2ff3.png)
Joined: 23/07/2005 16:04:09
Messages: 48
Offline
|
Quando a mesma URL vai ser reaproveitada faz MUITO sentido e o conceito de inner action e bem legal... nao sei se eu me expliquei direito nem se dei um bom exemplo utilizando um form.
As vezes eu quero que o usuario va pra uma pagina qualquer, mas eu nao quero configurar isso em um link, diretamente no HREF. Quero colocar teste.mtw e dentro do AplicationManager dizer pra ele NAO FAZER NADA e apenas repassar pra teste.jsp
Qual a vantagem disso? Não sei! Pode ate ser cultural (mas eu gosto )
Quando comecei a usar/estudar frameworks MVC tinha o conceito de configure em um so lugar e altere em um so lugar. Caso precisasse fazer alguma alteração naquele link (o que nao e comum) teria de alterar apenas no AplicationManager pra nao ir mais pra teste.jsp e sim pra teste2.jsp e o usuario continuaria indo pra teste.mtw
Será que eu to viajando ou complicando?
http://struts.apache.org/api/org/apache/struts/actions/ForwardAction.html
http://www.onjava.com/pub/a/onjava/2002/10/30/jakarta.html?page=3
|
A programação hoje é uma corrida entre os engenheiros de software que lutam para construir programas maiores e mais à prova de idiotas e o universo tentando produzir idiotas maiores e melhores. Até então, o universo está vencendo (Rick Cook) |
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/07/2005 17:48:51
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Tem razão. Eu é que não tinha entendido.
Vc pode reutilizar essa forward action em vários action configs para criar várias actions para os links. Eu tinha me esquecido de algo super importante que é o fato de vc poder reutilizar a mesma implementacao de action em varios action configs.
Mas esse nome ForwardAction eu nao gostei.
O nome certo deveria ser SuccessAction.java, ou seja, uma action que retorna sempre success.
O que acha?
|
Sergio Oliveira
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2005 12:51:09
|
passos
![[Avatar]](/images/avatar/9bf31c7ff062936a96d3c8bd1f8f2ff3.png)
Joined: 23/07/2005 16:04:09
Messages: 48
Offline
|
Aeeeeeeeeeee! Pegou o espirito da coisa.
Acho que ForwardAction tambem não seria legal por ja utilizar o nome Forward no framework e tambem pelo fato do nome ForwardAction ser utilizado pelo Struts.
Não gostei muito do nome SuccessAction, acho que deveria ser algo que indicasse que aquilo e apenas um Action de repasse algo como RepasseAction. Não sei como isso ficaria em ingles, ByPassAction
|
A programação hoje é uma corrida entre os engenheiros de software que lutam para construir programas maiores e mais à prova de idiotas e o universo tentando produzir idiotas maiores e melhores. Até então, o universo está vencendo (Rick Cook) |
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/08/2005 09:41:28
|
andredelorme
Joined: 20/07/2005 11:41:46
Messages: 51
Offline
|
passos,
Acho o nome SuccessAction mais coerente com a sua finalidade.
|
André Delorme |
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/08/2005 10:00:57
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
andredelorme wrote:
passos,
Acho o nome SuccessAction mais coerente com a sua finalidade.
Eu tb, afinal tudo que essa action faz é retornar success.
Quem faz o forward, redirect, chain ou nada é vc no ApplicationManager.
|
Sergio Oliveira
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/08/2005 10:02:32
|
passos
![[Avatar]](/images/avatar/9bf31c7ff062936a96d3c8bd1f8f2ff3.png)
Joined: 23/07/2005 16:04:09
Messages: 48
Offline
|
Que seja entao!
|
A programação hoje é uma corrida entre os engenheiros de software que lutam para construir programas maiores e mais à prova de idiotas e o universo tentando produzir idiotas maiores e melhores. Até então, o universo está vencendo (Rick Cook) |
|
 |
|