[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
input == null [RESOLVIDO]  XML
Forum Index -> Comentários Gerais
Author Message
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
[MSN]
saoj



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

Nunca vi isso !!!

Sergio Oliveira

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
[MSN]
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
[MSN]
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

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
[MSN]
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

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
[MSN]
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

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
[MSN]
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

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
[MSN]
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

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
[MSN]
Marcos Silva Pereira


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