selectOneRadio JSF

10 respostas
F

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

10 Respostas

P

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…

F

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

P

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

F

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.

P

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

F

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…

P

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…

F

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.

P

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

F

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

Criado 12 de dezembro de 2006
Ultima resposta 13 de dez. de 2006
Respostas 10
Participantes 2