Acho que eu to fazendo algo errado que não estou conseguindo enxergar, toda vez que faço um <c:forEach /> e ganho uma linda Exception na view, segue meu código:
Action no Struts 1.x:
private String performListar(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
ImovelBusiness imovelBusiness = new ImovelBusiness();
List<Imovel> imoveis = imovelBusiness.getAllImovel();
request.setAttribute("imoveis", imoveis); // vou trabalhar com este objeto.
return Constants.SUCCESS;
}
View (Aonde eu ganho exception):
<c:forEach var="imovel" items="${imoveis}">
<c:out value="${imovel.inquilino}" />
</c:forEach>
meu bean:
@RemoteProxy
@DataTransferObject
@Entity(name="imovel")
public class Imovel implements Serializable {
@RemoteProperty
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id", nullable=false, length=11)
private int id;
@RemoteProperty
@Column(name="proprietario", length=100)
private String proprietario;
@RemoteProperty
@Column(name="inquilino", length=100)
private String inquilino;
@RemoteProperty
@Column(name="pasta", length=3)
private Integer pasta;
@RemoteProperty
@Column(name="vencimento", length=2)
private Integer vencimento;
@RemoteProperty
@Column(name="anotacao", length=100)
private String anotacao;
@RemoteProperty
@Temporal(TemporalType.TIMESTAMP)
@Column(name="data_de_cadastro")
private Date dataDeCadastro;
@RemoteProperty
public String getAnotacao() {
return anotacao;
}
public void setAnotacao(String anotacao) {
this.anotacao = anotacao;
}
@RemoteProperty
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@RemoteProperty
public String getProprietario() {
return proprietario;
}
public void setProprietario(String proprietario) {
this.proprietario = proprietario;
}
@RemoteProperty
public String getInquilino() {
return inquilino;
}
public void setInquilino(String inquilino) {
this.inquilino = inquilino;
}
@RemoteProperty
public Integer getPasta() {
return pasta;
}
public void setPasta(int pasta) {
this.pasta = pasta;
}
@RemoteProperty
public Integer getVencimento() {
return vencimento;
}
public void setVencimento(int vencimento) {
this.vencimento = vencimento;
}
@RemoteProperty
public Date getDataDeCadastro() {
return dataDeCadastro;
}
public void setDataDeCadastro(Date dataDeCadastro) {
this.dataDeCadastro = dataDeCadastro;
}
}
Stacktrace:
SEVERE: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'inquilino' not found on type java.lang.String
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
at javax.el.BeanELResolver.property(BeanELResolver.java:279)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935)
at org.apache.jsp.relacao.index_jsp._jspx_meth_c_005fforEach_005f0(index_jsp.java:189)
at org.apache.jsp.relacao.index_jsp._jspx_meth_html_005fhtml_005f0(index_jsp.java:115)
at org.apache.jsp.relacao.index_jsp._jspService(index_jsp.java:77)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
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:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
at org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
at org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
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:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
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:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
EDIT*:
limpei a lista, e ao inves de mandar uma lista cheia, mandei uma lista apenas com 2 objetos.
dai, a exception mudou para:
javax.servlet.ServletException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:156)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
... continua