5
respostas

Botão gravar não tem ação

Ao seguir os passos do curso JSF I Aula 4 Vídeo 1, o relacionamento do instrutor funciona e o meu tecnicamente era para funcionar, porque não dá mensagem nem uma de erro e esta exatamente igual.

Mas quando a aplicação faz o relacionamento e eu aperto para gravar, a mensagem é esta.

out 26, 2017 10:35:59 PM com.sun.faces.renderkit.RenderKitUtils renderUnhandledMessages
INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=j_idt4:motorista[severity=(ERROR 2), summary=(j_idt4:motorista: 'Pessoa [nome=ROBSON GOMES, cpf=00000000000, rg=00000000000, nomeMae=ELENA, nomePai=RONALDO, dataNascimento=30/07/1979, rua=WENCESLAU, numeroCasa=10, bairro=IMBARIE, cidade=DUQUE DE CAXIAS, estado=RIO DE JANEIRO, cep=25275160]' must be a number consisting of one or more digits.), detail=(j_idt4:motorista: 'Pessoa [nome=ROBSON GOMES, cpf=00000000000, rg=00000000000, nomeMae=ELENA, nomePai=RONALDO, dataNascimento=30/07/1979, rua=WENCESLAU, numeroCasa=10, bairro=IMBARIE, cidade=DUQUE DE CAXIAS, estado=RIO DE JANEIRO, cep=25275160]' must be a number between -2147483648 and 2147483647 Example: 9346)]

Acho que o problemas esteja aqui: must be a number between -2147483648 and 2147483647 Example: 9346, como como resolver?

5 respostas

Fala ai Robson, tudo bem ?

Imagino que seja os zeros que estão causando esse problema, talvez valha a pena você colocar uma mensagem mais elegante também.

@Matheus Brandino

Olá meu camarada, mesmo se eu deixar null ele dá a mensagem.

Agora referente a elegância da mensagem, o que você quer dizer ? Tem algum conteúdo explicando?

Fala Robson, tudo bem?

você pode passar o código do seu .xhtml?

abraço

Tudo tranquilo Samir, ai está o código.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">

<h:body>
    <h1>Novo Dependente</h1>
    <h:form>

        <fieldset>
            <legend>Dados do Dependente</legend>
            <h:panelGrid columns="2">
                <h:outputLabel value="Nome: " for="nome" />
                <h:inputText id="nome" value="#{dependenteBean.dependente.nome}" />

                <h:outputLabel value="Data de Nascimento: " for="dataNascimento" />
                <h:inputText id="dataNascimento"
                    value="#{dependenteBean.dependente.dataNascimento}" />

                <h:outputLabel value="CPF: " for="cpf" />
                <h:inputText id="cpf" value="#{dependenteBean.dependente.cpf}" />

                <h:outputLabel value="RG: " for="rg" />
                <h:inputText id="rg" value="#{dependenteBean.dependente.rg}" />

                <h:outputLabel value="Nome da Mãe: " for="nomeMae" />
                <h:inputText id="nomeMae"
                    value="#{dependenteBean.dependente.nomeMae}" />

                <h:outputLabel value="Nome da Pai: " for="nomePai" />
                <h:inputText id="nomePai"
                    value="#{dependenteBean.dependente.nomePai}" />

                <h:outputLabel value="Nome da Rua: " for="rua" />
                <h:inputText id="rua" value="#{dependenteBean.dependente.rua}" />

                <h:outputLabel value="Numero da Casa ou Apartamento: "
                    for="numeroCasa" />
                <h:inputText id="numeroCasa"
                    value="#{dependenteBean.dependente.numeroCasa}" />

                <h:outputLabel value="Bairro: " for="bairro" />
                <h:inputText id="bairro" value="#{dependenteBean.dependente.bairro}" />

                <h:outputLabel value="Cidade: " for="cidade" />
                <h:inputText id="cidade" value="#{dependenteBean.dependente.cidade}" />

                <h:outputLabel value="Estado: " for="estado" />
                <h:inputText id="estado" value="#{dependenteBean.dependente.estado}" />

                <h:outputLabel value="CEP: " for="cep" />
                <h:inputText id="cep" value="#{dependenteBean.dependente.cep}" />

                <h:commandButton value="Cadastrar" action="#{dependenteBean.gravar}" />
            </h:panelGrid>


        </fieldset>



        <fieldset>
            <legend>Dados do Motorista</legend>
            <h:outputLabel value="Selecione Motorista" for="motorista" />
            <h:selectOneMenu value="#{dependenteBean.motoristaId}" id="motorista">
                <f:selectItems value="#{dependenteBean.motoristas}" var="motorista"
                    itemLabel="#{motorista.nome}" itemValue="#{pessoa.motorista.id}" />
            </h:selectOneMenu>
<!--             <h:message for="motorista" /> -->
            <h:commandButton value="Gravar Motorista"
                action="#{dependenteBean.gravarMotorista}" />


        </fieldset>


    </h:form>



</h:body>

</html>

Bean

package modelo;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import modeloDAO.DAO;

@ManagedBean
@ViewScoped
public class DependenteBean {

    private Dependente dependente = new Dependente();
    private Integer motoristaId;

    public void setMotoristaId(Integer motoristaId) {
        this.motoristaId = motoristaId;
    }

    public Integer getMotoristaId() {
        return motoristaId;
    }

    public Dependente getDependente() {
        return dependente;

    }

    public List<Motorista> getMotoristas() {
        return new DAO<Motorista>(Motorista.class).listaTodos();
    }

    public void gravarMotorista() {
        Motorista motorista = new DAO<Motorista>(Motorista.class).buscaPorId(this.motoristaId);
        this.dependente.adicionaMotorista(motorista);

    }

    public void gravar() {

        gravarMotorista();

        System.out.println("Gravando Dependente: " + this.dependente.toString());

        new DAO<Dependente>(Dependente.class).adiciona(this.dependente);

        this.dependente = new Dependente();

    }

}

fala Robson!

seguinte, o seu <h:message> esta comitado por isso o jsf está tentando mostrar a mensagem mas não tem onde mostrar.

usa um <h:messages> dentro do seu form que vai mostar todas as mensagens do seu form.

abraço!