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"