selectOneRadio JSF

Tenho o seguinte selectOneRadio:

<h:selectOneRadio id="tipo" value="#{proprietarioBean.vo.estadoCivil}" required="true" styleClass="texto">
    <f:selectItem itemValue="0" itemLabel="#{msgs.casado}"/>
    <f:selectItem itemValue="1" itemLabel="#{msgs.solteiro}" />
    <f:selectItem itemValue="2" itemLabel="#{msgs.viuvo}" />
    <f:selectItem itemValue="3" itemLabel="#{msgs.divorciado}" />
</h:selectOneRadio>

mas no banco de dados o atributo estadoCivil só aceita String, não tem como usar Integer ou outro tipo numérico?

Obrigado

converte antes de persistir…

mas vc vai inserir 0,1,2,3…como string, eh isso mesmo???, senão no itemValue vc põe o texto q vc quer q vá para o banco…

Na verdade eu queria gravar 0,1,2,3… como Integer, mas só funciona como String, tentei implementar um converter ele passa direitinho retorna o valor em Integer mas da erro de conversão na tela, como poderia fazer isso?

Obrigado

cara, em algum momento antes de vc fazer o insert ou update no bando vc faz um toString() do seu Integer…e voalá…vc tem um String!

flw

Eu não tenho que fazer o toString, porque ele já vem do jsp como String eu preciso é convernter para Integer, já tentei um new Integer(), parseInt, das duas formas ele passa pelo conversor e retorna um Integer, porém ele da a mensagem ainda no jsp de erro de conversão.

cara…se retorna String do JSP e no banco vc tem q inserir String…pq vc quer converter pra Integer???

Estou usando String no BD porque não to conseguindo gravar como Integer, o correto seria usar 0,1,2,3… como Integer e não como String no BD…

então esta resolvido???

ja q vc tem string vindo da JSP e string sendo gravado no banco, certo???

se vc quiser mudar no seu banco para algum tipo numerico…depois de pegar o resultado da JSP e soh fazer new Integer(“estadoCivil”) e mandar bala…ah, se vc estiver usando o JDBC, e usar o setInt do preparedstatement ou algo do tipo…vc vai ter q fazer Integer.parseInt(“estadoCivil”), pq ele aceita int e nao Integer…

espero ter ajudado…

Está funcionando mas não da maneira correta preciso gravar no BD inteiros, estou usando um converter para transformar ele para Integer, ele passa sem dar erros:

    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        if (value == null) {
            return null;
        }
        
        Integer id = new Integer(value);

        return id;
    }

Mas ele não chega nem a tentar inserir no BD, ele já da erro de conversão na página JSF. Estou usando com hibernate.

baum…erro de conversão na pagina…passa o erro aih pra gente ver…mas se o erro esta dando quando a pagina q possui o formulario esta sendo montada, quer dizer q vc tem q converter pra string antes de mandar os dados para a pagina, ou então especificar qual o tipo de dado será usado na pagina…

agora se vc esta usando hibernate, precisa fazer o mapeamento correto para o tipo de dado do banco e o tipo da variavel na sua classe…

manda o trace do erro aih pra gente pode ajudar…

vlw

O erro é esse:

Error: Value is not valid

Ele monta a página normalmente, é na hora de submeter que da o erro ainda na página, não chega gerar nehuma exception, capturo esse erro pelas mensagens:

<h:message for=“estadoCivil” styleClass=“msgErro”/>

estou usando hibernate com annotations, se o atributo for String passa, mas ele tem que ser Integer, e nesse caso da erro. Acredito que seja alguma coisa do JSF, mas não sei o que…

Obrigado