DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Video: Aplicação Completa Utilizando Hibernate - Aula 8 - Camada de Apresentação

Nesta aula continuamos a criar a parte visual da aplicação.

Título: Aplicação Completa Utilizando Hibernate - Aula 8 - Camada de Apresentação

 

Tempo: 00:15:20

 

Mini-Resumo: Nesta aula continuamos a criar a parte visual da aplicação preocupando-se com a definição da tela do produto e continuando a dar dicas de como implementar cada uma das partes relacionadas a esta na aplicação em geral.

 

Tecnologias Utilizadas: Java SE 6, NetBeans 6.5, Hibernate 3, JavaServer Faces

 

Exemplos construídos: Detalhamos a criação da interface do produto e suas propriedades, também detalhamos alguns macetes na criação da conexão entre o Manage4d bean e o Hibernate no caso de utilizar propriedades referenciadas por POJOS e não por classes normais.

 

Palavras chaves: netbeans6 hibernate jpa orm entity entidade mapeamento jsf






    26 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Kalil Mendonça Valadares Peixoto
Prezado Dyego, estou adorando suas vídeo-aulas, mas agora, final de campeonato deu um erro q não estou conseguindo resolver...

no momento de listar os Produtos, está trazendo a seguinte exceção

Caused by: org.apache.jasper.el.JspELException: /products.jsp(19,12) ''#{ProductFaces.cachedProducts}'' Error reading ''cachedProducts'' on type br.com.faces.ProductFaces

ROOT CAUSE
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [br.com.entidades.User#6]

Não estou entendendo mesmo, se puder ajudar eu agradeço...
[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
Muito obrigado !

Sua base de dados está consistente ? tente zerar e começar do inicio... isto esta me cheirando entidades com relacionamento perdido...
[há +1 ano] - Responder
 

Rafael Batista Dutra
Bom dia Dyego,

primeiro queria te parabenizar pelas video-aulas que vem me ajudando bastantee venho aprendendo muito com elas.

Bom, eu acompanhei todas as video-aulas desse curso porém agora me ocorreu um erro, o mesmo erro que ocorre com você na video-aula:

"javax.servlet.ServletException: /newproduct.jsp(23,20) '#{ProductFace.selectedProduct.id}' Target Unreachable, 'selectedProduct' returned null
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)"

Na vide-aula você resolveu dizendo que faltava colocar o contexto, porém eu não consegui resolv-lo.
Você, ou o pessoal poderia me ajudar dizendo como posso resolver esse problema??

Grato.
[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
Muito Obrigado ! Espero sempre continuar com a qualidade :)


Resolve da sequinte forma:

onde esta:

private XXX selectedProcuct;

substitua por:

private XXX selectedProcuct = new XXX();


Assim voce inicia o seu formbean com uma classe desde o inicio...


[há +1 ano] - Responder
 

Eduardo Bortolatto Lopes
Olá Dyego ! Suas aulas são ótimas, parabéns. Estou com um problema na hora de incluir/listar os produtos: javax.servlet.ServletException: /novosprodutostwo.jsp(22,20) ''#{ProdutoFace.prodSelecionado.id}'' Target Unreachable, ''prodSelecionado'' returned null javax.faces.webapp.FacesServlet.service(FacesServlet.java:256) Já inicializei o prodSelecionado no ProductFace, o erro não aparece mais, porém não insere e nem volta para a página onde lista os produtos. Poderia me ajudar? Grato.
[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
Olá !
Valeu pela força !

Este erro ocorre porque a propriedade
prodSelecionado está NULL...

Crie ela no construtor:

prodSelecionado = new Produto();


Valeu !

[há +1 ano] - Responder
 

Emerson Ap De Oliveira
Olá Dyego !
 Primeiramente Parabens  pelo curso.

Estou com um erro ja comentado pelos nosso colegas
é este:

javax.servlet.ServletException: /NewProduct.jsp(22,15)
'#{Productface.selectedProduct.id}' Target Unreachable, 'selectedProduct' returned null


isto acontece na ora de inserir ou cancelar Produtos , ja tentei resolver com algumas dicas dadas.

Quando declaro assim : private Product selectedProduct = new Product();

o erro não aparece mas tambem não insere e e nem retorna para  Pagina Product onde mostra a lista de Produtos.

Se poder ajudar-me ficarei grato.


[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
Você verificou a regra de navegação para o metodo de adição ?

Ela realmente existe ?

E o seu metodo de adição está sendo executado mesmo ?

Fico no aguardo !
[há +1 ano] - Responder
 

Jefferson William F. Condotta

Dyego to com 1 problema na aplicação e num consigo arrumar você ideia do que pode ser, qdo tento imprimir os usuarios na tela, da esse erro..

 

exception

javax.servlet.ServletException: /index.jsp(16,2) '#{UsuarioFace.cachedUser}' Error reading 'cachedUser' on type Faces.UsuarioFace
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)

root cause

org.apache.jasper.el.JspELException: /index.jsp(16,2) '#{UsuarioFace.cachedUser}' Error reading 'cachedUser' on type Faces.UsuarioFace
	org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107)
	javax.faces.component.UIData.getValue(UIData.java:582)
	javax.faces.component.UIData.getDataModel(UIData.java:1063)
	javax.faces.component.UIData.setRowIndex(UIData.java:417)
	com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:85)
	javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:785)
	javax.faces.component.UIData.encodeBegin(UIData.java:879)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
	javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
	com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:175)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

root cause

java.lang.NoClassDefFoundError: org/hibernate/Session
 
Você tem Ideia do que seja Obrigado!!!

[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
O hibernate nao esta instalado no app server.. apenas adicione as bibliotecas :)
[há +1 ano] - Responder
 

Mauricio Alexandre Da Cruz
Primeiro gostaria de parabenizar pelas video aulas.

estou com um erro que uma outra pessoa ai passou.

na hora de adicionar um novo produto e também uma nova venda é apresentada a seguinte mensagem.

Feb 14, 2009 8:36:27 PM com.sun.faces.lifecycle.RenderResponsePhase execute
INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=j_id_jsp_43059340_2:j_id_jsp_43059340_7[severity=(ERROR 2), summary=(Conversion Error setting value ''''''''Mauricio'''''''' for ''''''''null Converter''''''''. ), detail=(Conversion Error setting value ''''''''Mauricio'''''''' for ''''''''null Converter''''''''. )]


conforme você orientou o outro colega, gerei automaticamente pelo netbeans os hashcode e equalscode mesmo assim o erro continua, tanto quando eu clico no botão CANCEL como no botão ADD.

e também fiz o método toString() tudo conforme vc orientou na video aula

Agradeço com antecedência
[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
Isto ocorre porque voce deve tambem gerar um CONVERSOR que vai fazer isto para voce , ele vai converter uma STRING em um OBJETO e um OBJETO em uma String...


Esta instrução você pode ver na serie de video aulas "Construindo uma aplicação completa utilizando JSF"

Valeu !

[há +1 ano] - Responder
 

Paulo Cesar Constantino Junior
Bom Dia Dyego, primeiramente agradeço pelas aulas, e estou aprendendo bastante com elas, já baixei quase todas de sua autoria. Dyego presciso que vc me ajude, estou assistindo as aulas de Hibernate com jsf no momento e está quase pronto só faltando essa questão "Conversores", como os amigos que postaram as duvidas anteriormente eu já segui as dicas para baixar as aluas citadas e ainda amigo, desculpe-me, me encontro com duvida. vou posta o codigo e indicarei aonde e a parte que me enteressa. E agradeço desde já.


newproduct.jsp

 <h:form>
                <h:messages />
                Id: <h:inputText value="#{ProductFaces.selectdProdut.id}" /><br>
                Nome: <h:inputText value="#{ProductFaces.selectdProdut.name}" /><br>
                Price: <h:inputText value="#{ProductFaces.selectdProdut.price}" /><br>
                Stock: <h:inputText value="#{ProductFaces.selectdProdut.stock}" /><br>
              
                Owner: <h:selectOneMenu value="#{ProductFaces.selectdProdut.owner}" >
                    <f:selectItems value="#{ProductFaces.usersOfSystem}" />
                    <f:converter converterId="ProductConvert" />
                </h:selectOneMenu>
              
                <br>
                <h:commandButton action="gotoListProduct" value="Cancelar" />
                <h:commandButton action="#{ProductFaces.finishAddNewProduct}" value="Add" />
</h:form>

________________________________________________________________________________________
faces-config.xml

<converter>
         <converter-id>ProductConvert</converter-id>
         <converter-class>devmedia.faces.ProductConvert</converter-class>
</converter>
________________________________________________________________________________________
ProductFaces.java

public List<SelectItem> getUsersOfSystem() {
        List<SelectItem> toReturn = new LinkedList<SelectItem>();
        for (Users usr : userDAO.getUsers()) {
            toReturn.add(new SelectItem(usr,usr.getName()));
        }
        return toReturn;
    }
________________________________________________________________________________________
E acredito que aqui que mora o perigo pois a minha pagina jsf fica travada, ou seja, não consigo navegar e como os commandButtom não funcionase.

ProductConvert.java

public class ProductConvert implements Converter {
     UserDAO userDAO = new UserDAO();
    
    public ProductConvert() {
    }

                       //minha duvida e aqui!!!
    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
     Integer id = Integer.parseInt(value);
      return userDAO.getUsers();  
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
      Users usr = (Users)value;
      return usr.getName().toString();
    }

}
_______________________________________________________________________________________
Segue tambem o UserDAO

public class UserDAO extends GenericDAO {

    private Session session;

    public UserDAO(Session session) {

        this.session = session;
    }

    public UserDAO() {

        this.session = getSession();
    }

    public int addUser(Users us) {
        Session ses = getSession();
        ses.save(us);
        ses.getTransaction().commit();
        ses.close();
        return us.getId();
    }

    public void removeUser(Users us) {
        Session ses = getSession();
        ses.delete(us);
        ses.getTransaction().commit();
        ses.close();
    }

    public void setUser(Users us) {
        Session ses = getSession();
        ses.update(us);
        ses.getTransaction().commit();
        ses.close();
    }

    public boolean isValidLoginAndPassword(String login, String password) {
        boolean valid;
        Session ses = getSession();
        Query query = ses.createQuery("from Users usr where usr.login = :lg and usr.password = :pw");
        query.setString("lg", login);
        query.setString("pw", password);
        Users usr = (Users) query.uniqueResult();
        valid = (usr != null);
        ses.getTransaction().commit();
        ses.close();
        return valid;
    }
   
      public boolean isValidLoginAndPasswordWithNewVersion(String login, String password){
       
          return getPurePojo("from Users usr where usr.login = ?1 usr.password = ?2", login, password) != null;
    }

      public List<Users> getUsers(){

          return getPureList(Users.class, "from Users usr");

        
      }

    public Users getUsers(int idUser){
       Users usr = getPojo(Users.class, idUser);
       return usr;

    }


}

     

[há +1 ano] - Responder
 

Paulo Cesar Constantino Junior
Resolvido com essa video aula  JVM_DS_JavaServerFaces

Video: Como trabalhar com validadores e conversores em JavaServer Faces
Aula Unica da serie!!!
[há +1 ano] - Responder
 

Paulo Cesar Constantino Junior
Caro Dyego,

      Muito obrigado por ter desenvolvido todas essas videos aulas tão didáticas e com ótimo nivel de conteudo. A questão é se for possivel amigo desenvolva uma uma serie de video aula integrando o Struts2 com ajax e Hibernate,  JPA etc... Grande amigo  "Enriquessa" a nossa vida profissional com mais essa serie!!!!!!!!! 
[há +1 ano] - Responder
 

Paulo Cesar Constantino Junior
Grande Dyego,

        Muito obrigado por ter desenvolvido todas essas videos aulas tão didáticas e com ótimo nivel de conteudo.
        Amigo, se estiver no seu limite, por favor desenvolva uma serie de aulas integrando struts2 + hibernate + ireport.


Agradeço desde já.
         
      
[há +1 ano] - Responder
 

Antonio Carlos Meleiro Sepulveda

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: /novoproduto.jsp(21,20) '#{ProdutoFace.selectedProduto.id}' Target Unreachable, 'selectedProduto' returned null javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)

root cause

org.apache.jasper.el.JspPropertyNotFoundException: /novoproduto.jsp(21,20) '#{ProdutoFace.selectedProduto.id}' Target Unreachable, 'selectedProduto' returned null org.apache.jasper.el.JspValueExpression.getType(JspValueExpression.java:61) com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:81) javax.faces.component.UIInput.getConvertedValue(UIInput.java:934) javax.faces.component.UIInput.validate(UIInput.java:860) javax.faces.component.UIInput.executeValidate(UIInput.java:1065) javax.faces.component.UIInput.processValidators(UIInput.java:666) javax.faces.component.UIForm.processValidators(UIForm.java:229) javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1033) javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:662) com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.


Apache Tomcat/6.0.16


Pessoal alguem  ai de cima ou vc mesmo Dyego posso me ajuda com esse erro pois ja testei todas as suas dicas acima mas nao deu certo quando eu crio a instancia no construtor ai nao da mais o erro mas nao funciona

esperos respostas obrigado

[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
no FACE... onde tem o
private PRoduto selectedProduto;


troque para

private PRoduto selectedProduto = new Produto();




[há +1 ano] - Responder
 

Wilson Carlos Guissoni Cabral
Olá, já tentei resolver o problema com as soluções acima, mas não consegui..

dá o seguinte erro na hora de converter:
java.lang.NumberFormatException: For input string: "1º Semestre 2010" java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) java.lang.Integer.parseInt(Integer.java:456) java.lang.Integer.parseInt(Integer.java:497) conversores.conversorPeriodo.getAsObject(conversorPeriodo.java:27) com.sun.faces.taglib.jsf_core.ConverterTag$BindingConverter.getAsObject(ConverterTag.java:90) com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:152) com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectOneValue(MenuRenderer.java:197) com.sun.faces.renderkit.html_basic.MenuRenderer.getConvertedValue(MenuRenderer.java:359) javax.faces.component.UIInput.getConvertedValue(UIInput.java:934) javax.faces.component.UIInput.validate(UIInput.java:860) javax.faces.component.UIInput.executeValidate(UIInput.java:1065) javax.faces.component.UIInput.processValidators(UIInput.java:666) javax.faces.component.UIForm.processValidators(UIForm.java:229) javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1033) javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:662) com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)to começando a fazer meu projeto usando suas aulas... se puder me dar uma força aí, desde já valew!
classe do Conversor:public class conversorPeriodo implements Converter{ private PeriodoDAO periodoDAO = new PeriodoDAO(); public conversorPeriodo() { } public Object getAsObject(FacesContext context, UIComponent component, String value) { Integer codPeriodo = Integer.parseInt(value.toString()); return periodoDAO.getPeriodo(codPeriodo); } public String getAsString(FacesContext context, UIComponent component, Object value) { return ((periodo)value).getDescricao(); //return value.toString(); }


Form inserção:
    <h:form>
                <%-- Código: <h:inputText value="#{calendarioFace.calendarioSelecionado.cod}" /> <br/> --%>
                Evento: <h:inputText value="#{calendarioFace.calendarioSelecionado.evento}" /> <br/>
                Data: <h:inputText value="#{calendarioFace.calendarioSelecionado.dataevento}">
                    <f:convertDateTime pattern="dd/MM/aa" />
                </h:inputText> <br/>
                Periodo: <h:selectOneMenu  value="#{calendarioFace.calendarioSelecionado.periodo}">
                    <f:selectItems value="#{calendarioFace.periodosofSystem}"/>
                    <f:converter converterId="conversorPeriodo"/>
                   
                </h:selectOneMenu>
                <p />
                <h:commandButton action="listaEventos" value="Cancelar"/>
                <h:commandButton action="#{calendarioFace.fimAddCalendario}" value="Adicionar"/>
            </h:form>




[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
O campo onde voce esta digitando ""1º Semestre 2010"

Voce criou como INTEIRO , e tem que ser uma string :)

[há +1 ano] - Responder
 

Wilson Carlos Guissoni Cabral
Bom, depois de algumas alterações o erro agora é este:
Dá uma luz aí..

java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based! org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterDescriptor(ParameterMetadata.java:55) org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterExpectedType(ParameterMetadata.java:61) org.hibernate.impl.AbstractQueryImpl.determineType(AbstractQueryImpl.java:397) org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:369) daos.GenericoDAO.getPureList(GenericoDAO.java:32) daos.PeriodoDAO.getPeriodoByCod(PeriodoDAO.java:47) conversores.conversorPeriodo.getAsObject(conversorPeriodo.java:27) com.sun.faces.taglib.jsf_core.ConverterTag$BindingConverter.getAsObject(ConverterTag.java:90) com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:152) com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectOneValue(MenuRenderer.java:197) com.sun.faces.renderkit.html_basic.MenuRenderer.getConvertedValue(MenuRenderer.java:359) javax.faces.component.UIInput.getConvertedValue(UIInput.java:934) javax.faces.component.UIInput.validate(UIInput.java:860) javax.faces.component.UIInput.executeValidate(UIInput.java:1065) javax.faces.component.UIInput.processValidators(UIInput.java:666) javax.faces.component.UIForm.processValidators(UIForm.java:229) javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1033) javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:662) com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
Conversor:public Object getAsObject(FacesContext context, UIComponent component, String value) { return periodoDAO.getPeriodoByCod(Integer.parseInt(value)); } public String getAsString(FacesContext context, UIComponent component, Object value) { return value.toString(); }
getPeriodoByCodpublic List<periodo> getPeriodoByCod(int cod) { return getPureList(periodo.class, "from periodo per", cod); } getPureList protected <T extends Serializable> List<T> getPureList(Class<T> classToCast,String query,Object... params) { Session ses = getSession(); Query qr = ses.createQuery(query); for (int i = 1; i <= params.length; i++) { qr.setParameter(i, params[i-1]); } @SuppressWarnings("unchecked") List<T> toReturn = qr.list(); ses.getTransaction().commit(); ses.close(); return toReturn; }
Desde já, valew!



[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
Mostre a QUERY JPASQL que voce esta repassando a funcao...

[há +1 ano] - Responder
 

Wilson Carlos Guissoni Cabral
Desde já brigadão por estar respondendo!

Percebi q não estava passando nenhum parâmetro na hql, agora não dá erro, mas tb não tá finalizando a inserção:

Segue o detalhe do código

Form:
<h:form>
                <h:messages/>
                <%-- Código: <h:inputText value="#{disciplinaFace.disciplinaSelecionado.cod}" /> <br/> --%>
                Disciplina: <h:inputText value="#{disciplinaFace.disciplinaSelecionada.nome}" /> <br/>
                Carga Horária (Hrs): <h:inputText value="#{disciplinaFace.disciplinaSelecionada.cargahoraria}" /> <br/>
                Ementa: <br /><h:inputTextarea rows="5" cols="40" value="#{disciplinaFace.disciplinaSelecionada.ementa}" /> <br/>
                Objetivo: <br /><h:inputTextarea rows="3" cols="60" value="#{disciplinaFace.disciplinaSelecionada.objetivo}" /> <br/>
                Competências / Habilidades: <br /><h:inputTextarea rows="3" cols="40" value="#{disciplinaFace.disciplinaSelecionada.comp_habilidades}" /> <br/>
                Bibliografia Básica:<br /> <h:inputTextarea rows="5" cols="40" value="#{disciplinaFace.disciplinaSelecionada.bib_basica}" /> <br/>
                Professor: <h:selectOneMenu value="#{disciplinaFace.disciplinaSelecionada.professor}">
                    <f:selectItems value="#{disciplinaFace.professoresfSystem}"/>
                   <f:converter converterId="conversorProfessor"/>
                </h:selectOneMenu> <br/>
                Turma: <h:selectOneMenu value="#{disciplinaFace.disciplinaSelecionada.turma}">
                    <f:selectItems value="#{disciplinaFace.turmasofSystem}"/>
                  <f:converter converterId="conversorTurma"/>
                </h:selectOneMenu> <br/>
                <h:commandButton action="listaDisciplinas" value="Cancelar"/>
                <h:commandButton action="#{disciplinaFace.fimAddDisciplina}" value="Adicionar"/>
            </h:form>


Método fimAddDisciplina()

 public String fimAddDisciplina() {
    DisciplinaDAO.addDisciplina(DisciplinaSelecionada);
    cachedDisciplinas = null;
    return "listaDisciplinas";
}


Método addDisciplina
   public int addDisciplina(disciplina dis) {
       saveOrUpdatePojo(dis);
       return dis.getCod();
   }


Professor Conversor
   public Object getAsObject(FacesContext context, UIComponent component, String value) {
        return professorDAO.getProfessorByCod(Integer.parseInt(value));
    }

    public String getAsString(FacesContext context, UIComponent component, Object value) {
        return value.toString();
    }

getProfessorByCod
  public professor getProfessorByCod(int cod) {
        Session ses = getSession();
        Query query = ses.createQuery("from professor pro where pro.cod = :cd");
        query.setInteger("cd", cod);
        professor pro = (professor) query.uniqueResult();
        ses.getTransaction().commit();
        ses.close();
        return pro;
    }



Turma Conversor
   public Object getAsObject(FacesContext context, UIComponent component, String value) {
        return turmaDAO.getTurmaByCod(Integer.parseInt(value));
    }

    public String getAsString(FacesContext context, UIComponent component, Object value) {
        return value.toString();
    }

getTurmaByCod

public turma getTurmaByCod(int cod) {
        Session ses = getSession();
        Query query = ses.createQuery("from turma tur where tur.cod = :cd");
        query.setInteger("cd", cod);
        turma tur = (turma) query.uniqueResult();
        ses.getTransaction().commit();
        ses.close();
        return tur;
    }






[há +1 ano] - Responder
 

Wilson Carlos Guissoni Cabral
aí Dyego, revisando suas video aulas consegui achar o erro...

pode desconsiderar aí a msg de cima.

Agora to com o mesmo erro de alguns, toda vez que acesso uma página pede login...

valew
[há +1 ano] - Responder
 

Renato Machado Moreira Junior
Dyego porque mesmo sem conversor o teu código funciona?
Por exemplo no form de salvar um produto há um selectOneMenu para o usuário mas ele não tem conversor e mesmo assim grava.

No meu código dá o seguinte erro quando tento gravar :
"Erro de conversão ao definir o valor 'User2' para 'null Converter'."
[há 11 dias] - Responder

 

[autor] Dyego Souza Do Carmo
Infelizmente a nova versao da biblioteca exige um conversor explicito... antigamente ela funcionava apenas usando metodo equals da classe...

Terá que criar um conversor explicitamente :(

Atenciosamente,
[há 5 dias] - Responder
 



Publicidade
Curso Online
Autor
Dyego Souza Do Carmo

Engenheiro da Computação e evangelista da tecnologia Java , a mais de 15 anos especialista no sistema operacional linux. Programador Java a 8 anos sendo especialista em desenvolvimento de aplicações Java EE utilizando objetos distribuidos e Swing. Consultoria em Dúvidas - Http://www.forHelp.Us


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
7   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03