[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 

Forum Read-Only! Check the new site and forum here!

ForwardAction  XML
Forum Index -> Comentários Gerais
Author Message
passos


[Avatar]

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)
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

passos


[Avatar]

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)
passos


[Avatar]

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)
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

passos


[Avatar]

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)
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

passos


[Avatar]

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)
andredelorme



Joined: 20/07/2005 11:41:46
Messages: 51
Offline

passos,

Acho o nome SuccessAction mais coerente com a sua finalidade.


André Delorme
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

passos


[Avatar]

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)
 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team