Jsf datatable

8 respostas
B

Olá pessoal estou estudando JSF é não estou conseguinto usar listas nas minhas paginas.

PAGINA
<f:view>
<h:dataTable value="#{testeJSF.carros}" var="carros">
<h:outputText value="#{carros.cor}"></h:outputText>
</h:dataTable>
</f:view>
CLASSE
public class TesteJSF {
	private String ola ="ola mundo";
	private List<CarroVO> carros;
	public TesteJSF() {
		// TODO Auto-generated constructor stub
	}
	public String getOla() {
		return ola;
	}
	public void setOla(String ola) {
		this.ola = ola;
	}
	public List<CarroVO> getCarros(){
		carros = new ArrayList<CarroVO>();
		CarroVO c  = new CarroVO();
		c.setCor("azul");
		carros.add(c);
                                CarroVO c1  = new CarroVO();
		c.setCor("verde");
		carros.add(c1);

		return carros;
		
}

public void setCarros(List<CarroVO> carros) {
	this.carros = carros;
}
	
	

}
public class CarroVO {
      private String cor;
//geteres e settes
}
Esta aparecendo a seguinte mensagem:
06/09/2007 13:05:29 org.apache.catalina.core.ApplicationContext log
INFO: WARNING: Component _id0 just got an automatic id, because there was no id assigned yet. If this component was created dynamically (i.e. not by a JSP tag) you should assign it an explicit static id or assign it the id you get from the createUniqueId from the current UIViewRoot component right after creation!
06/09/2007 13:05:29 org.apache.catalina.core.ApplicationContext log
INFO: No Renderer found for component {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /index1.jsp]} (component-family=javax.faces.ViewRoot, renderer-type=javax.faces.Text)
06/09/2007 13:05:29 org.apache.catalina.core.ApplicationContext log
INFO: No Renderer found for component {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /index1.jsp]} (component-family=javax.faces.ViewRoot, renderer-type=javax.faces.Text)
06/09/2007 13:05:29 org.apache.catalina.core.ApplicationContext log
INFO: No Renderer found for component {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /index1.jsp]} (component-family=javax.faces.ViewRoot, renderer-type=javax.faces.Text)
06/09/2007 13:05:29 org.apache.catalina.core.ApplicationContext log
INFO: No Renderer found for component {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /index1.jsp]} (component-family=javax.faces.ViewRoot, renderer-type=javax.faces.Text)
06/09/2007 13:05:29 org.apache.catalina.core.ApplicationContext log
INFO: No Renderer found for component {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /index1.jsp]} (component-family=javax.faces.ViewRoot, renderer-type=javax.faces.Text)

Alguem poderia me ajudar a solucionar isso!

Valeu a ajuda!!

8 Respostas

A

tenta alterar o seu datatable,

<f:view>
<h:dataTable id="listagem" value="#{testeJSF.carros}" var="carros">
<h:outputText value="#{carros.cor}"></h:outputText>
</h:dataTable>
</f:view>

Isso resolveria o primeiro warning.

M

Opa,

Está faltado as colunas:

<h:dataTable value="#{testeJSF.carros}" var="carros"> <h:column> <f:facet name="header"><h:outputText value="Cor"/></f:facet> <h:outputText value="#{carros.cor}"></h:outputText> </column> </h:dataTable>

B

Pessoal o erro ou o não aparecimento da lista ainda persiste, depois das alterações sugeridas!

org.apache.catalina.core.ApplicationContext log
INFO: WARNING: Component _id0 just got an automatic id, because there was no id assigned yet. If this component was created dynamically (i.e. not by a JSP tag) you should assign it an explicit static id or assign it the id you get from the createUniqueId from the current UIViewRoot component right after creation!

Valeu a ajuda!

B

Erro resolvido!

Obrigado pela ajuda!

A proveitando o topico, existe uma outra maneira de iterar por uma lista sem usar datatable ?
No caso não gostaria de constuir um tabela, queria só os valores soltos!

Valeu a ajuda!

M

Opa,

ser você estiver usando jsf 1.2, pode usando dentro de um c:forEach.

:okok:

B

estou usando a 1.1, mas vou trocar para usar o c:forEach

valeu!

B

Pessoal alterei o codigo para usar o c:forEach, mas não esta funcionando
Se eu fizer algo como

<c:forEach var="count" begin="0" end="5">
	${count}
</c:forEach>

imprime os números normalmente, mas se eu fizer

<c:forEach var="teste" items="#{calculatorFromBean.carros}">	
		${teste.cor}
</c:forEach>

ele me diz que

org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: The class 'java.lang.String' does not have the property 'cor'.
	at javax.el.BeanELResolver.getBeanProperty(BeanELResolver.java:561)
	at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:97)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:923)
	at org.apache.jsp.index2_jsp._jspx_meth_c_005fforEach_005f1(index2_jsp.java:1038)
	at org.apache.jsp.index2_jsp._jspService(index2_jsp.java:125)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)

A minha pagina esta da seguinte forma:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Teste</title>
</head>
<body>
<c:forEach var="teste" items="#{calculatorFromBean.carros}">	
		${teste.cor}
</c:forEach>

</body>
</html>

Alguem sabe o pq do erro?

valeu a ajuda!!!

M

Bom,

Cada item tem certeza que calculatorFromBean.carros retorna uma lista de carros que tem a propriedade getCor? Pelo erro está retornando uma lista/array de strings.

:okok:

Criado 6 de setembro de 2007
Ultima resposta 11 de set. de 2007
Respostas 8
Participantes 3