Olá pessoal,
Acaba de acontecer uma das coisas mas estranhas que eu já vi em Java.
A história:
Estava com problemas para mostrar a data da forma que eu queria, aí eu pensei em mostrá-la como String mesmo então fui na minha classe model, Noticia, e criei o atributo ‘sDate’ fiz get e set dele.
O get voltava a data mas como string.
Então fui na minha página e coloquei:
<p>Data:<h:outputText value=" #{noticiaForm.noticiaBusca.sDate}"></h:outputText></p>
noticiaForm é uma Bean session, noticiaBusca é um atributo dessa bean do tipo Noticia.
Recebi o erro:
org.apache.jasper.el.JspPropertyNotFoundException: /resultadoBusca.jsp(51,11) ' #{noticiaForm.noticiaBusca.sDate}' Property 'sDate' not found on type noticia.Noticia
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:104)
javax.faces.component.UIOutput.getValue(UIOutput.java:176)
com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:100)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:282)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:208)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:847)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:893)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:258)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:159)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
Voltei na minha classe Noticia mudei o nome do atributo ‘sDate’ para ‘dataString’, mudei os nomes dos metodos para o respectivo nome do atributo.
Mudei a chamada:
<p>Data:<h:outputText value=" #{noticiaForm.noticiaBusca.dataString}"></h:outputText></p>
Aí deu certo :shock: :shock:
Depois fiquei testando da mesma forma, mudando o nome sempre de ‘sDate’ para ‘dataString’ e vice-versa.
Quando o nome é ‘sDate’ dá erro, quando é ‘dateString’ funciona!!
Alguém já viu algo parecido??
PS: JSF, Spring, Hibernate.