5

我收到此错误,我无法弄清楚问题可能出在哪里。“userid”列在数据库中并且在 bean 中。有谁有想法吗?

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 

谢谢你。

4

3 回答 3

4

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

确保您User在所需范围内设置具体实例,而不是普通 vanilla String。由于您没有在问题中的任何地方显示您如何准备作用域变量,因此无法对此给出有针对性的答案,但它至少应该看起来像这样:

User user = userService.find(id);
request.setAttribute("user", user); // and thus not e.g. setAttribute("user", "user") or something.
于 2012-12-10T19:31:40.553 回答
0

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

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

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

于 2012-12-10T19:26:02.960 回答
0

<c:set var="user">${user}</c:set>在jsp上做任何地方吗?

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

于 2017-03-09T16:52:33.160 回答