在类型java.lang.String上找不到属性’someproperty’

我收到此错误,我无法弄清楚问题可能在哪里。 “userid”列位于数据库中并位于bean中。 有人有什么主意吗?

org.apache.jasper.JasperException: An exception occurred processing JSP page /user.jsp at line 24 21: 22: 
23: User ID : <input type="text" readonly="readonly" name="userid" 24: value="" /> Username : <input 25: type="text" name="firstName" 26: value="" /> LastName : <input 27: type="text" name="lastName" root cause javax.el.PropertyNotFoundException: Property 'userid' not found on type java.lang.String

谢谢。

例外是基本告诉你${user}是一个普通的java.lang.String 。 根据javadoc ,它确实没有表示userid属性的getUserid()方法。

确保您在所需范围内设置具体的User实例,而不是普通的vanilla String 。 由于你没有在问题的任何地方显示你是如何准备范围变量的,所以不可能给出有针对性的答案,但它至少应该是这样的:

 User user = userService.find(id); request.setAttribute("user", user); // and thus not eg setAttribute("user", "user") or something. 

根据我的说法,应该是以下情况之一

  • userid数据类型与bean中对应的数据类型不匹配。 它可能是db中的integer

  • 该属性未在bean类中定义。 名称可能不同,您必须推断它是userid

你在jsp上的任何地方做了${user}吗?

根据另一个问题的响应1 ,当您在JSP中设置var时,JSP会对字符串进行隐式转换。