Fórum Binding (JSF Página) esta passando valor null para ManagerBean #376534

28/04/2010

0

Pessoal testei a página de cadastro na minha aplicação e observei que o binding entre JSF e managerBean esta passando valor null, criei um objeto no meu managerBean chamado selectedSecretaria do tipo CadastrarSecretaria que é minha entidade contem minhas anotações hibernate, na minha página faço o binding chamando ManagerBean.objeto criado no managerbean.atributo da entidade (#Secretaria.selectedScretaria.nome}), pois bem ao digitar os dados a ser gravado e clicar no buttom "confirmar" ele so esta gravando o Id que esta configurado pra ser gerado e incrementado. Nos teste em que eu fis o valor que chega é null. O que devo fazer? Códigos abaixo.   ManagerBean
 import java.util.Date;
import java.util.List;
import secretaria.dao.CadSecretariaDAO;
import secretaria.entidade.CadastrarSecretaria;
public class Secretaria {
    private List<CadastrarSecretaria> cachedCadSecretarias = null;
    private CadSecretariaDAO cad = new CadSecretariaDAO();
    private CadastrarSecretaria selectedSecretaria;
    public List<CadastrarSecretaria> getCachedCadSecretaria() {
        if (cachedCadSecretarias == null) {
            cachedCadSecretarias = cad.getCadSecretarias();
        }
        return cachedCadSecretarias;
    }
    public String doConfirmaCadSecretaria() {
        selectedSecretaria = new CadastrarSecretaria();
        return "NovoUsuario";
    }
    public String finishConfirmaCadSecretaria() {
        //selectedSecretaria.setNome("Testando one");
        //selectedSecretaria.setCodoperinc(2);
        //selectedSecretaria.setDatainclusao(new Date());
        //selectedSecretaria.setStatus("A");
        System.out.println("***********Inicio***************");
        System.out.println(selectedSecretaria.getCodigosecretaria());
        System.out.println(selectedSecretaria.getNome());
        System.out.println(selectedSecretaria.getCodoperinc());
        System.out.println(selectedSecretaria.getDatainclusao());
        System.out.println(selectedSecretaria.getStatus());
        System.out.println("************fim*****************");
        cad.addCadastrarSecretaria(selectedSecretaria);
        cachedCadSecretarias = null;
        return "ListCadSecretaria";
    }
    public CadastrarSecretaria getSelectedSecretaria() {
        return selectedSecretaria;
    }
    public void setSelectedSecretaria(CadastrarSecretaria selectedSecretaria) {
        this.selectedSecretaria = selectedSecretaria;
    }
}
 
  Resultado impresso no console após clicar no Buttom "confirmar"
 ***********Inicio***************
null
null
null
null
null
************fim*****************
Hibernate: 
    select
        max(codigosecretaria) 
    from
        cadsecretaria
Hibernate: 
    insert 
    into
        cadsecretaria
        (codoperalt, codoperinc, dataalteracao, datainclusao, nome, status, codigosecretaria) 
    values
        (?, ?, ?, ?, ?, ?, ?)
Hibernate: 
    select
        cadastrars0_.codigosecretaria as codigose1_2_,
        cadastrars0_.codoperalt as codoperalt2_,
        cadastrars0_.codoperinc as codoperinc2_,
        cadastrars0_.dataalteracao as dataalte4_2_,
        cadastrars0_.datainclusao as dataincl5_2_,
        cadastrars0_.nome as nome2_,
        cadastrars0_.status as status2_ 
    from
        cadsecretaria cadastrars0_ 
  
Roberto Rodrigues.

Roberto Rodrigues.

Responder

Posts

28/04/2010

Carlos Mazzi

Pelo seu codigo, nao vejo onde esta instanciando a classe em questao... Seria interessante ver como vc esta fazendo a primeira instancia de sua classe, a qual vc chama de Secretaria. e seus Beans, estao funcionando corretamente?
Responder

Gostei + 0

29/04/2010

Roberto Rodrigues.

Pelo seu codigo, nao vejo onde esta instanciando a classe em questao... Seria interessante ver como vc esta fazendo a primeira instancia de sua classe, a qual vc chama de Secretaria. e seus Beans, estao funcionando corretamente?
Responder

Gostei + 0

29/04/2010

Roberto Rodrigues.

Boa Tarde! Carlos Eduardo  
Pelo seu codigo, nao vejo onde esta instanciando a classe em questao... Seria interessante ver como vc esta fazendo a primeira instancia de sua classe, a qual vc chama de Secretaria. e seus Beans, estao funcionando corretamente?
   A minha classe "Secretaria" é o meu managerBean onde faço a instancia  "#{Secretaria.selectedSecretaria.nome}, ao printar ele no managerBean pra ver qual valor esta chegando ele me mostrar o valor null no console.    
Responder

Gostei + 0

30/04/2010

Dyego Carmo

Cole o codigo do JSF aqui tmb

Responder

Gostei + 0

30/04/2010

Roberto Rodrigues.

É uma página JSF COM FACELETS segue o código da view conforme a sua solicitação:   Código:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:a4j="http://richfaces.org/a4j">     <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>Cadastrar Secretarias</title>
    </head>
    <body title="Cadastrar Secretarias" style="background-color: green">
        <h:panelGrid columns="6">
            <rich:panel>
                <f:facet name="header">
                    <h:outputText value="CADASTROS SECRETARIAS"/>
                </f:facet>
                <a4j:form ajaxSubmit="true" reRender="name">                     <h:inputText id="label" label="nome" size="10" style="width:auto"/>                     <a4j:commandButton id="incluir" value="Incluir" />
                    <a4j:commandButton id="alterar" value="Alterar" />
                    <a4j:commandButton id="deletar" value="Deletar"/>
                    <a4j:commandButton id="consultar" value="Consultar" />
                    <a4j:commandButton id="confirmar" value="Confirmar" action="#{Secretaria.finishConfirmaCadSecretaria}"/>
                    <a4j:commandButton id="cancelar" action="ListCadSecretaria" value="Cancelar" />
                    <br/>
                </a4j:form><br></br>
                <h:form><br/>                     Nome:<h:inputText value="#{Secretaria.selectedSecretaria.nome}"/><br/>
                    Cod Op Inicial: <h:inputText value="#{Secretaria.selectedSecretaria.codoperinc}"/><br/>
                    Data Inclusão:<rich:calendar value="#{Secretaria.selectedSecretaria.datainclusao}" datePattern="dd/MM/yy"/><br/>
                    Status <h:inputText value="#{Secretaria.selectedSecretaria.status}"/>
                    Cod Op Alteração: <h:inputText value="#{Secretaria.selectedSecretaria.codoperalt}"/><br/>
                </h:form>             </rich:panel>
        </h:panelGrid>
    </body>
</html>
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar