[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Messages posted by: bruno.braga  XML
Profile for bruno.braga -> Messages posted by bruno.braga [226] Go to Page: Previous  1, 2, 3 , ... 14, 15, 16 Next 
Author Message
Sergio te mandei um mail com um repost sobre o atributo extra... Mas pra não ficar mandando email, vou posta esse outro problema aqui:

Car car = (Car) input.getObject(Car.class);

Se meu car tem um campo BigDecimal, ele vem sempre null...
Se eu mudar o BigDecimal pra Double no meu Car.java, funciona.

Então o getObject ta com problema para converter BigDecimal.

Abraços,
não sei quais não possui o extra, porque na alteração que eu fiz eu mechi tipo na Base e coloquei esses 2 atributos, então todas as tags ficaram com ela automaticamente...

o extra eu sei que a 1 tag que eu peguei para usar não tinha... era a inputText...


Sergio blz?

Essa versão já está com aquelas alterações nas tag html? Aqueles atributos tabindex e accesskey...

Abraços,
Seu post falava de String Dependency (também), e agora não fala mais.

velo wrote:
se vai ficar dependente de algo, dependa pra valer =P 


não precisa ficar dependente =P
dependente = obrigatoriedade de ter o jar e/ou de usar

velo wrote:
Tem no mentawai?! Legal, mas não que eu tenha feito =D
E deve ter em locais que não tem alternativa ou faz com reflexão ou não faz, o que não é o caso. 


Velo, pq vc editou esse post ai?
Você tinha comentado nele sobre String Dependency. Tinha falado que se tivesse que usar String Dependency alguma vez na vida, vc suicidava ou algo assim...

Dai eu respondi (sobre essas parte), que vc não queria usar, mas queria criar, pq no menta tem lugares com isso (veja meu post)...
Dai vc pegou e mudou seu post e o que eu falei ficou sem sentido.... !?!?!?
Tipo, o mais legal seria vc ter postado outro post falando que enganou ou quis dizer outra coisa...
Isso não foi legal.

Mas tudo bem, ta ai... Ta explicado porque eu falei de String Dependency "do nada"...
Tem, tem muitos lugares com reflection no menta...
Inclusive o getObject como eu falei...

Reflection nesse caso é alternativa para não ter dependência. O que é válido.

Não entendi... Você não quer colocar String dependency, mas quer criar String dependency, porque vários lugares no menta obriga a usar String para controlar o que fazer (String dependency). Tipo retorno dos métodos das action que é String, configuração do ApplicationManager que tem um monte de String... Então estranho o comentário. Incoerente na verdade.

O getObject() foi um exemplo, mas é a mesma coisa do VO Filter.
E não quebra nada. Se não entendeu, isso é opcional.

Exato, se for fazer tem que fazer direito, a começar pelas avaliações e comentários. Criticar o que o menta já usa não parece um argumento válido.
Se for fazer, tu tem que saber ouvir a sugestão, levar para a tua equipe e ter uma resposta da equipe... sem opiniões pessoais sobre reflection.

Mais uma vez, isso é uma sugestão (que eu poderia ter feito ou não). Avaliem com calma e vejam os pontos positivos e negativos, sem opiniões fora de hora ou precipitadas.

velo wrote:
PQ se eh pra fazer com reflexão eu paro de trabalhar com java e vou axar uma linguagem não tipada pra ficar tomando erro em runtime.

VELO 


Então pode parar, pq o mentawai já tem vários lugares com reflection...
Acho que os argumentos não são validos, pq nesse caso é impossível dar erro de runtime.

Esse reflection é só para verificar se tem annotation do tipo org.hibernate.validator. Se tiver ou não tiver, não vai dar erro nenhum. É só uma verificação.

Dai o segundo passo é: tem a annotation? Então passa a bola para o Hibernate Validator. E mais uma vez não tem como dar erro, pq se o cara tem uma annotation dessa (org.hibernate.validator) na classe dele é porque esse jar já está no classpath.
É impossível o cara conseguir ter um @NotNull sem ter o jar no projeto dele.

Então pronto, vc criou uma integração com o Hibernate Validator sem dependência..., sem erros de runtime, e no input.getObject() e tudo...

Mais alguma razão VELO? Ta resistente atoa hein... Bom avaliem ai..., se acharem bobeira deixa quieto...

Flw!

velo wrote:
Como o mentawai vai checar de @NotNull sem dependencia? hehehehhe

E não me fala em reflexão!


VELO 


Porque não?
Pegando todas as annotations dos atributos sem dependência:
Code:
 	    Class c = Carro.class;
 
 	    Field[] fields = c.getDeclaredFields();
 
 	    for (Field field : fields) {
 	    	Annotation[] annotations = field.getAnnotations();
 		    for (Annotation ann : annotations) {
 		    	System.out.println(ann.annotationType().getName());
 	    	}
 	    } 
 


Essa é a opção do reflection (que alias já é usado em vários lugares do mentawai, inclusive para popular o objeto do getObject).

Uma outra opção é criar um mentawai-hvalidator.jar, com classes que tem dependencia com o hibernate validator, e se esse jar tivesse no classpath, chamar ele... Mas eu prefiro o reflection, que como eu disse já é usado no getObject, é só colocar umas verificações a mais.
Cara, tu não entendeu...

Se você colocar @NotNull, é claro que o seu projeto vai precisar do Hibernate Validator. O seu projeto. Não o mentawai.

Se o mentawai ver que você colocou um @NotNull no teu projeto, ele vai chamar o Hibernate Validator via reflection ou outra forma (tem outras).

Se você não colocou o @NotNull, o mentawai vai continuar como sempre foi, e fazer as validações no action (se tiver).

O mentawai não precisa do jar do Hibernate Validator. Quem precisa é o seu projeto se você quiser usar.
blz... ve ai então...

mas só lembrando que não precisa ter dependência
dependência pra mim é algo que precisa estar lá para funcionar
o input.getObject() vai continuar funcionando sem o Hibernate Validator
Hibernate Validator != Hibernate

Hibernate Validator agora é um projeto qualquer como bean utils, log4j ou etc...

Se você pode usar o log4j no seu projeto, quer dizer que está dependente? Não... Vc vai escolher se quer usar ou não...

Mesma coisa... o input.getObject() pode ver se tem annotation no Bean, se tiver valida tentando usar o Hibernate Validator que teria q estar no classpath...
Se não tiver, passa direto e não valida nesse ponto.
Agora que o Hibernate Validator virou um top project, seria legal fazer uma integração com ele.

http://validator.hibernate.org
http://www.hibernate.org/hib_docs/validator/reference/en/html

Tipo, usar a validação dos beans automaticamente quando der o comando input.getObject(), ao inves de ter q escrever uma validação no action...

Pode ser uma opção mais simples (interessante)...
E não depende mais de outras coisas do Hibernate. Só do projeto Hibernate Validator.
Você tentou algo q eu tinha falado?
Eu tinha falado muita coisa acho que não deu para entender direito...

Mas no InvocationChain tem esse código:
Code:
  		if (innerAction != null) {
  			Method m = getMethod(innerAction);
  			if (m != null) {
  				try {
  					result = (String) m.invoke(action, new Object[0]);
  				} catch(Exception e) {
  					throw new ActionException(e);
  				}
  			} else {
  				throw new ActionException("The inner action does not exist: " + innerAction);
  			}
  		} else {
  			result = action.execute();
  		}
 


Se vc fizer assim funciona:
Code:
  		if (innerAction != null) {
  			Method m = getMethod(innerAction);
  			if (m != null) {
  					result = (String) m.invoke(action, new Object[0]);
  			} else {
  				throw new ActionException("The inner action does not exist: " + innerAction);
  			}
  		} else {
  			result = action.execute();
  		}
 


Veja que eu não estou pedindo para deixar de tratar a exceção, estou pedindo para usar a mesma regra do else ali (quando não é innerAction)... Ou seja, não substituir a exceção real.

Tem outras formas de fazer mantendo o ActionException, mas esse é o mais simples de explicar e fazer... hehe
Desistiram de tentar acertar isso?
 
Profile for bruno.braga -> Messages posted by bruno.braga [226] Go to Page: Previous  1, 2, 3 , ... 14, 15, 16 Next 
Go to:   
Powered by JForum 2.1.6 © JForum Team