Property <propriedade> not found on type <classe> [Resolvido]

4 respostas
marlonmca

Olá pessoal. To com um problema que não consigo resolver. Já varri o google e fui atrás de algumas soluções, mas não deu certo.
Se eu chamar o . dá esse erro, mas se eu colocar somente a lista ele exibe o que o método toString da minha classe retornar.
O erro é esse:

GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/universidade4] threw exception [/teste.xhtml @27,65 value="#{row.nome}": Property 'nome' not found on type br.com.universidade.entity.Universidade] with root cause
javax.el.PropertyNotFoundException: /teste.xhtml @27,65 value="#{row.nome}": Property 'nome' not found on type br.com.universidade.entity.Universidade
	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:108)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
	at javax.faces.component.UIOutput.getValue(UIOutput.java:164)
	at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:201)
	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:351)
	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:160)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:879)
	at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:70)
	at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:54)
	at org.primefaces.component.datatable.DataTableRenderer.encodeTable(DataTableRenderer.java:525)
	at org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:407)
	at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:193)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:879)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:164)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:389)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:163)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:556)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:267)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:245)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:260)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)

Universidade.java

package br.com.universidade.entity;

@Entity
@Table( schema="client", name="universidade")
public class Universidade implements Serializable{

	private static final long serialVersionUID = 1L;
	@Id
	@Column( name="id_universidade", unique=true, nullable=false, updatable=false )
	private int idUniversidade;
	
	@Column(name = "nome", nullable = true, length = 200)
	private String nome;
	
	public void getIdUniversidade(int idUniversidade) {
		this.idUniversidade = idUniversidade;
	}
	public int setIdUniversidade() {
		return idUniversidade;
	}
	
	public String setNome() {
		return nome;
	}
	public void getNome(String nome) {
		this.nome = nome;
	}
	
	@Override
	public String toString() {
		return nome;
	}
}

UniversidadeDao.java

public List<Universidade> getListaCompleta() {
		this.session = new HibernateUtil().getSession();		
		return (List<Universidade>) session.createCriteria(Universidade.class).list();
	}

faces-config.xml

<managed-bean>
  <managed-bean-name>universidadeDao</managed-bean-name>
  <managed-bean-class>br.com.universidade.dao.UniversidadeDao</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>

teste.xhtml

<p:dataTable id="tabela" var="row" value="#{universidadeDao.listaCompleta}">
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Título"/>
                            </f:facet>
                            <h:outputText value="#{row.nome}" />
                        </p:column>
                    </p:dataTable>

se eu colocar #{row} ele escreve o que o toString retornar.

4 Respostas

Ygor

public String setNome() { return nome; } public void getNome(String nome) { this.nome = nome; }

marlonmca

então ygor… meu entity tem o get e o set conforme vc disse. Você queria que eu colocasse em algum outro lugar que não fosse o entity?

Ygor

Desculpe não ter sido especifico, mas o que houve é que os seus getters e setters estão trocados

public String setNome() {     
       return nome;     
}     
   public void getNome(String nome) {     
       this.nome = nome;     
}

->>
public String getNome() {     
       return nome;     
}     
public void setNome(String nome) {     
       this.nome = nome;     
}
marlonmca

:open_mouth: :blush:

kkkkkkkkkk

:shock:

Eu tava pensando que era algo mais complicado que nem lembrei de revisar o get e set. :confused:

Valw ygor. :blush:

Criado 17 de setembro de 2010
Ultima resposta 17 de set. de 2010
Respostas 4
Participantes 2