estou com um problema que achei que era simples de resolver mas não to conseguindo.
Eu preciso que em minha aplicação, todo input que esteja VAZIO tenha o valor no Java definido para NULL
Então fiz o que eu achei mais lógico, um Converter.
mas não funciona. Eu debugo o converter mas ele não é executado:
o fato de tu estar usando o value.equals(""), fará com que a string fique vazia, pedendo dar problema no teu banco, nunca me deparei com esta situação, porém, eu atribuiria uma caracter qualquer e trataria o mesmo na aplicação como “nullo”, é uma ideia…
Lucas_Cavalcanti
Qual versão do vraptor vc tá usando?
IOGI ou OGNL? (pelas libs que estão no classpath)
rafaelbtz
No lib tem:
vraptor-3.4.0.jar e ognl-2.7.3.jar
rafaelbtz
Junior valeu pela resposta, mas pra falar a verdade não entendi bem que você quis dizer, mas esse value.equals("") só está testando o valor vindo da request, mas o problema é um pouco mais em baixo, pois o código do Converter não é executado.
Lucas_Cavalcanti
bom, possivelmente o OGNL não use o String converter…
vc pode tentar usar o iogi, removendo o jar do ognl, colocando o jar do iogi e registrando o pacote do iogi no web.xml… acho que funciona.
rafaelbtz
Valeu Lucas, mas acho que estou fazendo alguma coisa errada.
Retirei o ognl-2.7.3.jar da pasta lib e coloquei o iogi-0.9.1.jar
volta com o jar do ognl, e o pacote pra adicionar não é o que vc pôs, é esse:
br.com.caelum.vraptor.http.iogi
rafaelbtz
Lucas, agora funcionou. Valeu.
Só uma dúvida pra eu entender melhor,
debugando o Converter ele não passa por la.
Isso que dizer que o IOGI ja transforma String vazia em NULL sem precisar de Converters?
Lucas_Cavalcanti
sim, é o comportamento padrão do iogi se eu não me engano.
A
AbelBueno
Hum… então quer dizer que o StringConverter nunca é usado?
Estou fazendo um projeto com Vraptor 3.4.0 utilizando o Iogi e este post tinha me dado uma boa idéia.
Coloquei como teste para ele sempre retornar a String em maiusculo, mas não funcionou.
Imaginei que Strings não precisassem de conversão por já serem o tipo que vem no request.
Mas como tem uma classe StringConverter nativa no framework, imaginei que isso foi considerado.
Tem como fazer o framework chamar esse Conveter?
rafaelbtz
Eu até removi meu converter do projeto e as Strings continuam vindo como eu queria, realmente o @Converter(String.class) não é chamado.
Lucas_Cavalcanti
AbelBueno,
o VRaptor não chama o StringConverter simplesmente pq não tem mto porque converter de String para String…
se vc tem um dado específico que precisa transformar tudo pra maiúsculo, vc sempre pode fazer isso no setter:
o VRaptor não chama o StringConverter simplesmente pq não tem mto porque converter de String para String…
Obrigado Lucas.
Foi a primeira coisa que pensei ao ver o tópico: já vem String no request, não precisaria conversão.
É que como tem uma StringConverter nativa lá, imaginei que mesmo strings caissem nesse fluxo.
O que eu queria era um pouco mais complexo do que tornar maiusculo, foi só um exemplo.
De qualquer forma, encontrei outra solução mais viável. Obrigado.