[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!

ActionConfig  XML
Forum Index -> Comentários Gerais
Author Message
roberto.soares


[Avatar]

Joined: 28/06/2005 23:07:34
Messages: 20
Location: Brasil
Offline

Olá,

Estava pensando se tinha como melhorar a relação InnerAction X ActionConfig, acrescentando um novo parâmetro em ActionConfig q seria o método utilizado, caso não fosse "execute()".

Code:
 
 		//add and edit category
 		ac = new ActionConfig("/category.f",CategoryAction.class);
 		ac.addConsequence(CategoryAction.SUCCESS,"add",new Redirect("/index.jsp"));
 		ac.addConsequence(UserAction.ERROR,"add",new Forward("/formcategory.jsp"));
 		ac.addConsequence(CategoryAction.SUCCESS,"edit",new Forward("/index.jsp"));
 		ac.addConsequence(UserAction.ERROR,"edit",new Forward("/editcategory.jsp"));
 		addActionConfig(ac);
 		ac.addFilter(new CategoryValidator());
 		ac.addFilter(new VOFilter(Category.class));


Encontrei um pequeno problema no caso de diferentes Validator's para InnerActions. (E tbm que usar "?action=..." não fica muito interessante.)

Pensei em algo assim:

Code:
 ac = new ActionConfig("/category",CategoryAction.class,"add");
 		ac.addConsequence(CategoryAction.SUCCESS,new Redirect("/index.jsp"));
 		ac.addConsequence(UserAction.ERROR,new Forward("/formcategory.jsp"));
 		addActionConfig(ac);
 		ac.addFilter(new AddCategoryValidator());
 		ac.addFilter(new VOFilter(Category.class));
 		
 		ac = new ActionConfig("/category",CategoryAction.class,"edit");
 		ac.addConsequence(CategoryAction.SUCCESS,new Forward("/index.jsp"));
 		ac.addConsequence(UserAction.ERROR,new Forward("/editcategory.jsp"));
 		addActionConfig(ac);
 		ac.addFilter(new EditCategoryValidator());
 		ac.addFilter(new VOFilter(Category.class));
 


Os links poderiam ficar: "localhost/category.add.mtw".

Tentei fazer algo assim com a versão atual e tive links assim: "localhost/category.add.mtw?action="add"...

O que acha Sérgio?

Roberto Soares
[Email] [WWW] [MSN]
roberto.soares


[Avatar]

Joined: 28/06/2005 23:07:34
Messages: 20
Location: Brasil
Offline

Ah, tem casos que funciona que é uma beleza:

Code:
 		//list and view category
 		ac = new ActionConfig("/category",CategoryAction.class);
 		ac.addConsequence(CategoryAction.SUCCESS,"list",new Forward("/listcategory.jsp"));
 		ac.addConsequence(CategoryAction.SUCCESS,"view",new Forward("/viewcategory.jsp"));
 		ac.addConsequence(UserAction.ERROR,new Forward("/error.jsp"));
 		addActionConfig(ac);


Só tendo o problema do link.

Roberto Soares
[Email] [WWW] [MSN]
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Acho que entendi !!!

Do jeito que está hoje não podemos ter filtros de validação específicos para cada inner action, já que quando adicionamos um filtro, adicionamos para a action independentemente de inner actions.

Estou pensando...

Sergio Oliveira

saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Chamada: http://localhost/category.add.mtw

Regras:

1) Primeiro procura por um ActoinConfig especificado com o add no construtor:
Code:
 ac = new ActionConfig("/category",CategoryAction.class,"add");
 


2) Se não encontrou, procura por um ActionConfig sem nenhuma inner action especificada no construtor:
Code:
 ac = new ActionConfig("/category",CategoryAction.class);
 


Para o caso de um action config especificada com uma inner action, todos os filtros e consequencias são apenas para aquela Inner Action. Se vc chama addConsequence com uma inner action recebe um IllegalStateException.

Para o caso de um action config sem inner actions, as regras são as que estavam valendo até agora, ou seja, vc pode chamar addConsequence especificando a inner action e os filtros adicionados serão executados para todas as inner actions.

Acho que isso é o melhor de ambos os mundos né ???

Problema: Colocando isso no link como vc sugeriu, implica que inner actions terão que estar ativadas para todas as actions, independentemente de um filtro para ativá-las.





Sergio Oliveira

saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Acho que agora está bom:

http://mentawai.lohis.com.br/inneraction.jsp

Sergio Oliveira

roberto.soares


[Avatar]

Joined: 28/06/2005 23:07:34
Messages: 20
Location: Brasil
Offline

Olá,

Gostei! Vou atualizar minha aplicação e deixo aqui meus comentários.

Roberto Soares
[Email] [WWW] [MSN]
 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team