Good afternoon, I have a web application and I want to return data to a jsp, but when I log in, it does not show anything on the screen (blank screen) and I get the following error:
GRAVE: El Servlet.service() para servlet jsp lanzó una excepción
javax.el.PropertyNotFoundException: Propiedad 'FecPrestacion' no hallada en el tipo java.lang.String
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:229)
at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:206)
at javax.el.BeanELResolver.property(BeanELResolver.java:317)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:85)
at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104)
at org.apache.el.parser.AstValue.getValue(AstValue.java:183)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:1026)
at org.apache.jsp.menuAnestesista_jsp._jspx_meth_fmt_005fformatDate_005f0(menuAnestesista_jsp.java:421)
at org.apache.jsp.menuAnestesista_jsp._jspx_meth_c_005fforEach_005f0(menuAnestesista_jsp.java:326)
at org.apache.jsp.menuAnestesista_jsp._jspService(menuAnestesista_jsp.java:180)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at servlet.LoginUsr.cargaAnestesista(LoginUsr.java:128)
at servlet.LoginUsr.doPost(LoginUsr.java:103)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP /menuAnestesista.jsp en línea 88
85: <c:forEach items="${requestScope.listadoAnestesia}" var="anestesia">
86: <tr>
87: <td>${i}</td>
88: <td><fmt:formatDate type="date" value = "${anestesia.FecPrestacion}" /></td>
89: <td><c:out value="${anestesia.fecARA}" default="---"></c:out></td>
90: <td><c:out value="${anestesia.fecRendicion}" default="---"></c:out></td>
91: <td><c:out value="${anestesia.afiliado()}"></c:out></td>
Stacktrace:
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at servlet.LoginUsr.cargaAnestesista(LoginUsr.java:128)
at servlet.LoginUsr.doPost(LoginUsr.java:103)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.el.PropertyNotFoundException: Propiedad 'FecPrestacion' no hallada en el tipo java.lang.String
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:229)
at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:206)
at javax.el.BeanELResolver.property(BeanELResolver.java:317)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:85)
at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104)
at org.apache.el.parser.AstValue.getValue(AstValue.java:183)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:1026)
at org.apache.jsp.menuAnestesista_jsp._jspx_meth_fmt_005fformatDate_005f0(menuAnestesista_jsp.java:421)
at org.apache.jsp.menuAnestesista_jsp._jspx_meth_c_005fforEach_005f0(menuAnestesista_jsp.java:326)
at org.apache.jsp.menuAnestesista_jsp._jspService(menuAnestesista_jsp.java:180)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
... 35 more
Ultimately he tells me this:
Caused by: javax.el.PropertyNotFoundException: Propiedad 'FecPrestacion' no hallada en el tipo java.lang.String.
Thanks
I edit so I do not complicate it more than it is
<c:forEach items="${requestScope.listadoAnestesia}" var="anestesia">
<tr>
<td>${i}</td>
<td><fmt:formatDate type="date" value = "${anestesia.FecPrestacion}" /></td>
<td><c:out value="${anestesia.fecARA}" default="---"></c:out></td>
<td><c:out value="${anestesia.fecRendicion}" default="---"></c:out></td>
<td><c:out value="${anestesia.afiliado()}"></c:out></td>
<td><c:out value="${anestesia.nroAfiliado()}"></c:out></td>
<td><c:out value="${anestesia.osocial()}"></c:out></td>
The error is given to me in the first option I retrieve from the request
This is my class, it is a model from which I dump the data that I need to show so I do not complicate so much in the JSP, this data is added in the servlet that returns the data.
package entidades;
import java.io.Serializable;
import java.util.Date;
public class ModeloAnestesia implements Serializable{
/*
* VARIABLES
* ----------
*/
private static final long serialVersionUID = 1L;
private int idAnestesia, nroAfiliado, nroVias, nroTalon;
private String afiliado, edad, usuario, medico, anestesista, sanatorio, osocial, tpoAnestesia;
private Date fecPrestacion, fecARA, fecCarga, fecRendicion;
private boolean nocturno, feriado, fds;
/*
* CONSTRUCTORES
* -------------
*/
public ModeloAnestesia() {}
public ModeloAnestesia(int idAnestesia, Date fp, Date fa, Date fc, Date fr, String afiliado, int nroAfiliado,
boolean nocturno, boolean feriado, boolean fds, int nroVias, String edad, String usuario, String medico,
String anestesista, String sanatorio, String OS, String tpoAnestesia, int nroTalon){
this.idAnestesia = idAnestesia;
this.fecPrestacion = fp;
this.fecARA = fa;
this.fecCarga = fc;
this.fecRendicion = fr;
this.afiliado = afiliado;
this.nroAfiliado = nroAfiliado;
this.nocturno = nocturno;
this.feriado = feriado;
this.fds = fds;
this.nroVias = nroVias;
this.edad = edad;
this.usuario = usuario;
this.medico = medico;
this.anestesista = anestesista;
this.sanatorio = sanatorio;
this.osocial = OS;
this.tpoAnestesia = tpoAnestesia;
this.nroTalon = nroTalon;
}
/*
* METODOS
* -------
*/
public int getIdAnestesia() {
return idAnestesia;
}
public void setIdAnestesia(int idAnestesia) {
this.idAnestesia = idAnestesia;
}
public int getNroAfiliado() {
return nroAfiliado;
}
public void setNroAfiliado(int nroAfiliado) {
this.nroAfiliado = nroAfiliado;
}
public int getNroVias() {
return nroVias;
}
public void setNroVias(int nroVias) {
this.nroVias = nroVias;
}
public String getAfiliado() {
return afiliado;
}
public void setAfiliado(String afiliado) {
this.afiliado = afiliado;
}
public String getEdad() {
return edad;
}
public void setEdad(String edad) {
this.edad = edad;
}
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
public String getMedico() {
return medico;
}
public void setMedico(String medico) {
this.medico = medico;
}
public String getAnestesista() {
return anestesista;
}
public void setAnestesista(String anestesista) {
this.anestesista = anestesista;
}
public String getSanatorio() {
return sanatorio;
}
public void setSanatorio(String sanatorio) {
this.sanatorio = sanatorio;
}
public String getOsocial() {
return osocial;
}
public void setOsocial(String osocial) {
this.osocial = osocial;
}
public String getTpoAnestesia() {
return tpoAnestesia;
}
public void setTpoAnestesia(String tpoAnestesia) {
this.tpoAnestesia = tpoAnestesia;
}
public Date getFecPrestacion() {
return fecPrestacion;
}
public void setFecPrestacion(Date fecPrestacion) {
this.fecPrestacion = fecPrestacion;
}
public Date getFecARA() {
return fecARA;
}
public void setFecARA(Date fecARA) {
this.fecARA = fecARA;
}
public Date getFecCarga() {
return fecCarga;
}
public void setFecCarga(Date fecCarga) {
this.fecCarga = fecCarga;
}
public Date getFecRendicion() {
return fecRendicion;
}
public void setFecRendicion(Date fecRendicion) {
this.fecRendicion = fecRendicion;
}
public boolean isNocturno() {
return nocturno;
}
public void setNocturno(boolean nocturno) {
this.nocturno = nocturno;
}
public boolean isFeriado() {
return feriado;
}
public void setFeriado(boolean feriado) {
this.feriado = feriado;
}
public boolean isFds() {
return fds;
}
public void setFds(boolean fds) {
this.fds = fds;
}
public int getNroTalon(){
return nroTalon;
}
public void setNroTalon(int nroTalon){
this.nroTalon = nroTalon;
}
}
I add the part of the servlet that retrieves my data.
// Metodo que instancia los listados que necesito mostrar al principio y me deriva a la pagina correspondiente
private void cargaAnestesista(HttpServletRequest request, HttpServletResponse response){
try {
anestesias = cargarDatos(user);
HttpSession session = request.getSession(true);
request.setAttribute("anestesias", anestesias);
request.getRequestDispatcher("menuAnestesista.jsp").forward(request, response);
} catch (ServletException | IOException e) {
e.printStackTrace();
}
}
private ArrayList<ModeloAnestesia> cargarDatos(Usuario u){
//Instancio las variables que declare arriba
ctrlAnestesia = new CtrlAnestesia();
anestesista = new Anestesista();
ctrlAnestesista = new CtrlAnestesista();
ArrayList<Anestesia> listado = new ArrayList<>();
ArrayList<ModeloAnestesia> modelos = new ArrayList<>();
//Primero recupero los datos del anestesista
anestesista = ctrlAnestesista.buscarAnestesista(u.getUser());//tengo que ver si lo voy a necesitar??
/* Recupero los datos que voy a mostrar:
* - Obra Social
* - Medico
* - Sanatorio
* - TpoAnestesia
* El resto de los valores los paso de la anestesia directamente
*/
//Recupero las anestesias del anestesista activo.
try {
for(Anestesia a: ctrlAnestesia.listarAnestesia())
{
if(a.getUser() == u.getUser()){
listado.add(a);
}
}
} catch (ApplicationException e) {
e.printStackTrace();
}
//Recorro el listado de anestesias recuperados
if(!listado.isEmpty()){
for(Anestesia l:listado){
modelos.add(cargaModelo(l));
}
}
return modelos;
}
//Cargo la instancia del modelo que corresponde a la anestesia activa en el for de arriba
private ModeloAnestesia cargaModelo(Anestesia l){
modelo2 = new ModeloAnestesia();
modelo2.setIdAnestesia(l.getIdAnestesia());
modelo2.setFecPrestacion(l.getFecPrestacion());
modelo2.setFecARA(l.getFecAra());
modelo2.setFecRendicion(l.getFecRendicion());
modelo2.setAfiliado(l.getAfiliado());
modelo2.setNroAfiliado(l.getNroAfiliado());
modelo2.setOsocial(cargaOS(l.getIdOS()));//Ejecuto el metodo para devolver el dato
modelo2.setNocturno(cambiaTipo(l.getNocturno()));
modelo2.setFeriado(cambiaTipo(l.getFeriado()));
modelo2.setFds(cambiaTipo(l.getFds()));
modelo2.setNroVias(l.getNroVias());
modelo2.setEdad(l.getEdad());
modelo2.setNroTalon(l.getNroTalon());
modelo2.setMedico(cargaMedico(l.getIdMedico()));
modelo2.setSanatorio(cargaSanatorio(l.getIdSanatorio()));
modelo2.setTpoAnestesia(cargaTpoAnestesia(l.getIdTpoAnestesia()));
modelo2.setUsuario(l.getUser());
return modelo2;
}