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
[code]
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;
}
}[/code]
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!!
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.
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>
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!
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!
Opa,
ser você estiver usando jsf 1.2, pode usando dentro de um c:forEach.
:okok:
estou usando a 1.1, mas vou trocar para usar o c:forEach
valeu!
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!!!
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: