JSP EL 不工作 - javax.el.PropertyNotFoundException: 属性 'name' 在类型 java.lang.String 上找不到
JSP EL not working - javax.el.PropertyNotFoundException: Property 'name' not found on type java.lang.String
我对 JSP EL 有疑问,我已经解决了。
在我的 Servlet doGet() 方法中,我使用这段代码从数据库中检索数据:
UserServices us = new UserServices();
List<User> users= us.allUsers();
request.setAttribute("users", users);
request.getRequestDispatcher("/list_users.jsp").forward(request, response);
问题是当我像这样使用 JSP Scriplets & Expressions 时:
<%
List<User> users = (List<User>) request.getAttribute("users");
if(users != null) {
for(User user : users) {
%>
<p><%=user.getName()%></p>
<%
}
}
%>
它工作正常但是当我使用 JSP EL :
<p>${user.name}</p>
这个错误提示出来:
javax.el.PropertyNotFoundException: Property 'name' not found on type java.lang.String
编辑:
我的用户 class :
class User {
private long id;
private String name;
private String age;
public User() {
}
public User(String name, String age) {
this.name = name;
this.age = age;
}
public long getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
我试过类似的代码。只需在 User
class 中添加 public
关键字,如下所示:
public class User {
private long id;
private String name;
private String age;
//Geters & Setters
}
在 <%@ page %>
指令中添加 isELIgnored="false"
。
我对 JSP EL 有疑问,我已经解决了。 在我的 Servlet doGet() 方法中,我使用这段代码从数据库中检索数据:
UserServices us = new UserServices();
List<User> users= us.allUsers();
request.setAttribute("users", users);
request.getRequestDispatcher("/list_users.jsp").forward(request, response);
问题是当我像这样使用 JSP Scriplets & Expressions 时:
<%
List<User> users = (List<User>) request.getAttribute("users");
if(users != null) {
for(User user : users) {
%>
<p><%=user.getName()%></p>
<%
}
}
%>
它工作正常但是当我使用 JSP EL :
<p>${user.name}</p>
这个错误提示出来:
javax.el.PropertyNotFoundException: Property 'name' not found on type java.lang.String
编辑: 我的用户 class :
class User {
private long id;
private String name;
private String age;
public User() {
}
public User(String name, String age) {
this.name = name;
this.age = age;
}
public long getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
我试过类似的代码。只需在 User
class 中添加 public
关键字,如下所示:
public class User {
private long id;
private String name;
private String age;
//Geters & Setters
}
在 <%@ page %>
指令中添加 isELIgnored="false"
。