utilizando - Propiedad ''alguna propiedad'' no encontrada en el tipo java.lang.String
jsp usebean ejemplos (3)
Me aparece este error y no puedo descubrir dónde podría estar el problema. La columna "userid" está en la base de datos y está en el bean. ¿Alguien tiene alguna idea?
org.apache.jasper.JasperException: An exception occurred processing JSP page /user.jsp at line 24
21:
22: <form method="POST" action="AdminServlet" name="frmAddUser">
23: User ID : <input type="text" readonly="readonly" name="userid"
24: value="<c:out value="${user.userid}" />" />
Username : <input
25: type="text" name="firstName"
26: value="<c:out value="${user.firstName}" />" />
LastName : <input
27: type="text" name="lastName"
root cause
javax.el.PropertyNotFoundException: Property ''userid'' not found on type java.lang.String
Gracias.
¿Estás haciendo un <c:set var="user">${user}</c:set>
cualquier parte de jsp?
De acuerdo con la Respuesta 1 en otra pregunta, JSP realiza una conversión implícita a una cadena cuando establece la var en el JSP.
La excepción es decirle básicamente que ${user}
es un java.lang.String
ordinario. De acuerdo con javadoc , no tiene ningún método getUserid()
que represente una propiedad de userid
.
Asegúrese de establecer una instancia concreta de User
en el ámbito deseado en lugar de una String
estándar simple. Como no ha mostrado en ninguna parte de la pregunta cómo está preparando la variable de ámbito, no es posible dar una respuesta específica sobre eso, pero al menos debería tener el siguiente aspecto:
User user = userService.find(id);
request.setAttribute("user", user); // and thus not e.g. setAttribute("user", "user") or something.
Uno de los siguientes debería ser el caso, según yo
El tipo de datos
userid
no coincide con el que corresponde en el bean. Puede ser uninteger
en db.La propiedad no está definida en la clase de bean. El nombre puede ser diferente, y debe inferir que es
userid
.