| Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/05/2006 20:11:11
|
tgp
Joined: 30/04/2006 02:03:14
Messages: 29
Location: Maringá - PR
Offline
|
Estou digitando a URL de uma Action no Browser, quando estra na Action o input == null, qual a condição para que isto ocorra ?
|
Thiago Pádua
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/05/2006 21:31:49
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Nunca vi isso !!!
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/05/2006 22:50:18
|
tgp
Joined: 30/04/2006 02:03:14
Messages: 29
Location: Maringá - PR
Offline
|
mas eu vi! hehehe
Assim eu tenho 2 Heranças envolvidas mas acredito que isso não implique em nada...
Base Action
^^
DefaultBaseAction (implementa alguns metódos que reutilizo)
^^
TheAction (onde esta acontecendo isso)
Eu simplesmente tento acessar o input e ele retorna NULL.
Essa classe tem 2 filtros VOFilter e OVFilter.
Bom qualquer outra informação a mais só pedir
off topic
estava a lendo o bombardeio e asneras que foram postado no javaworld a respeito do seu artigo. É triste encontrar tantas pessoas que não sabem respeitar o trabalho alheio, principalmente tão bem estruturado como o sue. Mas como dizem: Sua inveja faz a minha fama
Parabéns Sergio que continue assim cada dia melhor
|
Thiago Pádua
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2006 07:32:49
|
tgp
Joined: 30/04/2006 02:03:14
Messages: 29
Location: Maringá - PR
Offline
|
DESCOBRI!
Eu estava utilizando o construtor da Action para inicializar uma variavel comum a tdas as actions (estou utlizando inner-actions). E dentro dele o input == null, dentro das actions ele esta Ok!
Isso era previsto ?
|
Thiago Pádua
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2006 08:53:47
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
O Input é injetado via setter methods pelo Controller em tempo de execução da action, e não via construtor.
Quando o construtor for executado, todas as propriedades da action ainda não foram injetadas !
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2006 09:03:46
|
tgp
Joined: 30/04/2006 02:03:14
Messages: 29
Location: Maringá - PR
Offline
|
que pena...
Pq assim eu preciso ficar repetindo meu código.
Tem como contornar isso de algum jeito ?
|
Thiago Pádua
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2006 09:20:18
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Me explica melhor o seu problema.
Faz todo o sentido que o input seja injetado em tempo de execução e não em tempo de construção.
Deve haver uma maneira simples de fazer o que vc está querendo. Posta o seu código aqui se possível tb.
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2006 09:23:49
|
tgp
Joined: 30/04/2006 02:03:14
Messages: 29
Location: Maringá - PR
Offline
|
A idéia era fazer esse localizacaoBase ser iniciado no Construtor, just it;
public class LocalizacaoBaseActionCRUD extends DefaultActionCRUD {
private LocalizacaoBase localizacaoBase;
public String create() throws Exception {
localizacaoBase = (LocalizacaoBase) input.getValue("localizacaoBase");
return defaultProcessorForCreateUpdateDelete(localizacaoBase);
}
public String retrieve() throws Exception {
return defaultProcessorForRetrieve(LocalizacaoBase.class);
}
public String update() throws Exception {
localizacaoBase = (LocalizacaoBase) input.getValue("localizacaoBase");
return defaultProcessorForCreateUpdateDelete(localizacaoBase);
}
public String delete() throws Exception {
localizacaoBase = (LocalizacaoBase) input.getValue("localizacaoBase");
return defaultProcessorForCreateUpdateDelete(localizacaoBase);
}
}
|
Thiago Pádua
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2006 09:27:38
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Essa não é a maneira mais recomendável de fazer isso.
Se vc quer alterar o Input para todas as suas actions, vc pode e deve usar um filtro para tal.
Construa um filtro que coloca no input esse localizacaoBase.
Depois ele pode ser até global.
Outro jeito é usar IoC para disponibilizar esse localizacaoBase para as actions.
Consulte:
http://www.mentaframework.org/ioc.jsp
http://www.mentaframework.org/filters.jsp
PS: O que é o localizacaoBase ?
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2006 09:32:23
|
tgp
Joined: 30/04/2006 02:03:14
Messages: 29
Location: Maringá - PR
Offline
|
Obrigado mestre
Construir um filtro acho que seria "trabalho demais" para tal. Acredito que o IoC case exatamente com o propósito desse problema.
Eu acho o IoC bem legal, mas as vezes me pergunto se não é magico demais... no sentido de os beans aparecem "do nada", não sei consegue compreender minha preocupação.
|
Thiago Pádua
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2006 09:53:59
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Entendo perfeitamente sua preocupação.
Fazer um filtro é bemmmmmmm fácil.
A interface filter tem dois métodos (filter e destroy) sendo que destroy geralmente vc deixa em branco.
Se bem que para o seu caso acredito que IoC é a melhor opção.
IoC é mágico mesmo, mas isso não é ruim.
Vc pode controlar via escope a criação desses beans. Por exemplo: Application é o famoso singleton. O IoC vai criar uma instancia apenas e repassá-la sempre. Escopo session a instancia vai persistir enquanto a sessao do cara for a mesma. E escopo request a cada request haverá uma instancia diferente.
IoC é o jeito moderno de deixar sua aplicação desacoplada, limpa e leve.
Se puder usar, use-o.
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2006 12:19:36
|
tgp
Joined: 30/04/2006 02:03:14
Messages: 29
Location: Maringá - PR
Offline
|
Então eu sei que é simples implementar um filtro, mas é que eu teria que cria uma clase para cada um dos meus 17 cadastros e aplicar este filtro em cada um dos 17 cadastros... Então acho que a abordagem com o IoC seria mto mais simples, rapida e como mesmo efeito
Quanto os escopos é bem tranquilo ja mechi bastante com isso, a minha *preocupação* é que chega a ser engraçado vc ver uma propriedade declarada sem ser inicilizada e vc manipular ela nos metódos da classe entende ? por ex.:
Code:
public class HelloIoC{
private String hello;
public void sayHello() {
System.out.println(hello); // null ? hehehe
}
}
Essa simples classe, mostra como é *engraçado* vc olhar pra uma classe que tem um atributo setado por IoC... Bom vc entendeu Mas realmente é algo bemmm interessante, vou utilizar o IoC sim.
Mas em relação a desacoplamento, vc acha que setar uma atributo via IoC o torna desaclopavel mesme se o tipo deste não for uma interface e sim uma classe concreta ?
Valeu
|
Thiago Pádua
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2006 12:30:49
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Boa pergunta. Tenho que pensar para responde-la.
O que vc quer setar com IoC ?
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2006 12:32:08
|
tgp
Joined: 30/04/2006 02:03:14
Messages: 29
Location: Maringá - PR
Offline
|
saoj wrote:
Boa pergunta. Tenho que pensar para responde-la.
O que vc quer setar com IoC ?
No caso o bean que foi populado pelo VOFilter.
É o exemplo que colei acima.
|
Thiago Pádua
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2006 22:17:53
|
Marcos Silva Pereira
Joined: 10/08/2005 10:22:46
Messages: 16
Offline
|
tgp wrote:
Mas em relação a desacoplamento, vc acha que setar uma atributo via IoC o torna desaclopavel mesme se o tipo deste não for uma interface e sim uma classe concreta ?
Sim, pode ser um objeto de alguma subclasse. Mas é muito mais comum um componente ser definido por interfaces do que por superclasses.
valeuz...
|
Marcos Silva Pereira
Comunidade Blastêmica |
|
|
 |
|
|