Problema de converão com BooleanConverter no VRaptor 3.1.2

7 respostas
anderson_lr

Pessoal,

Estou tendo problemas com conversão de Boolean na minha aplicação, e o meu conversor de Boolean padrão do vratpor está assim:
package br.com.caelum.vraptor.converter;

import br.com.caelum.vraptor.Convert;
import br.com.caelum.vraptor.Converter;
import br.com.caelum.vraptor.ioc.ApplicationScoped;
import java.util.ResourceBundle;
import java.util.Set;

@Convert(value = Boolean.class)
@ApplicationScoped
public class BooleanConverter implements Converter<Boolean> {

    private static final Set<String> IS_TRUE;
    private static final Set<String> IS_FALSE;

    public BooleanConverter() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public Boolean convert(String value, Class<? extends Boolean> type, ResourceBundle bundle) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    private boolean matches(Set<String> words, String value) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }
}

Não deveria ter implementações nos métodos? Será que é esse o problema? Aguardo retorno de vocês. Obrigado.

7 Respostas

G

Acho que é algum problema da sua IDE, pois essa classe BooleanConverter existe desde os primórdios do Vraptor e sempre houve implementação. Inclusive se você notar na linha 13 onde há um atributo final sem atribuição alguma nem mesmo compilaria.

anderson_lr

Garcia,

Mas a IDE só exibe o que está na classe não é? Será que existe a possibilidade de estar uma coisa na classe e IDE exibir outra?
G

anderson_lr:
Garcia,

Mas a IDE só exibe o que está na classe não é? Será que existe a possibilidade de estar uma coisa na classe e IDE exibir outra?

Sim. Quando você compila você perde o fonte. No caso do Eclipse quando eu clico na classe ele me mostra a representação do bytecode, e não o fonte da classe em sí, a menos que você anexe os fontes na IDE.

Qual a IDE que você está usando?

E a propósito, está realmente acontecendo algum erro na sua aplicação, ou você apenas achou estranho ter uma classe pelada?

Lucas_Cavalcanti

no meio desses compile codes existem alguns ifs e try…catches…

o código real da classe é esse:

anderson_lr

Garcia,

Estava tendo problema sim. É que tina uma entidade com um campo [b]Boolean[/b] que era settado através de um campo checkbox no jsp, mas quando eu não selecionava o checkbox, ao invés do vraptor settar meu campo como FALSE, ele setava como null, mas pesquisei aqui e vi que a especificação html diz que o valor do checkbox  é enviado se você preenche-lo, caso contrário, o vraptor não consegue captar o valor, porque na realidade ele nem existe.  troquei meu input que setta minha propriedade no jsp para combobox mesmo e está funcionando perfeitamente. Mas a princípio pensei que o conversor do vraptor estava com problema, pelo fato de não ter a implementação dos métodos. Mas agora  entendi. Obrigado pelo apoio e atenção.
G

Se você quer que checkbox não selecionado seja false você pode colocar o atributo como boolean primitivo.

anderson_lr

Garcia,

Havia me esquecido que boolean primitivo aceita null e assume false como padrão. Obrigado pela dica.
Criado 19 de julho de 2010
Ultima resposta 19 de jul. de 2010
Respostas 7
Participantes 3