Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 表达式语言无法访问getter方法_Java_Jsp_Servlets_Jakarta Ee_El - Fatal编程技术网

Java 表达式语言无法访问getter方法

Java 表达式语言无法访问getter方法,java,jsp,servlets,jakarta-ee,el,Java,Jsp,Servlets,Jakarta Ee,El,我有以下类users.java: package org.XY; public class user { private String mail; private String name; private String org; private String pw; private String admin; public user (String mail,String name,String org, String pw, String a

我有以下类users.java:

package org.XY;

public class user {
    private String mail;
    private String name;
    private String org;
    private String pw;
    private String admin;

    public user (String mail,String name,String org, String pw, String admin){
        this.mail=mail;
        this.name=name;
        this.org=org;
        this.pw = pw;
        this.admin = admin;
    }

    public String getMail() {
        return this.mail;
    }

    public String getName() {
        return this.name;
    }

    public String getOrg() {
        return this.org;
    }

    public String getPw() {
        return this.pw;
    }

    public String getAdmin() {
        return this.admin;
    }

    public String getUser() {
        String u = this.mail + " | " + this.name + " | " + this.org + " | " + this.pw + " | Is admin:" + this.admin;
        return u;
    }

}

以及以下jsp页面:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page import="org.XY" %>
<%@ page import="java.util.List" %>
<%@page isELIgnored="false"%>


<html>
<head>
    <title>myservlet</title>
</head>
<body>

<%--<c:forEach items="${users}" var="user">
    <tr>
        <td><c:out value="${user.getMail()}" /></td>
        <td><c:out value="${user.getName()}" /></td>
        <td><c:out value="${user.getOrg()}" /></td>
        <td><c:out value="${user.getPw()}" /></td>
        <td><c:out value="${user.getAdmin()}" /></td>
    </tr>
</c:forEach>--%>

<%
    List<user> users = (List<user>) request.getAttribute("users");
    for (user user : users) {
%>
${user.mail}
<%
    }
%>

<%
    for (user user : users) {
        out.println("<li>" + user.getPw());
    }
%>
...
我想创建一个包含所有用户数据的表。 如您所见,我尝试将${user.mail}方法用于el

两者都给了我一个javax.el.PropertyNotFoundException:在类[org.isse.sopro.user]错误和java.lang.NoSuchFieldException:mail错误上找不到名为[mail]的公共静态字段

我已经尝试过重命名getter方法,但没有解决这个问题。 有人能告诉我我做错了什么吗? 当做 安迪

更新: 显然,这不是关于程序本身,而是关于maven。从Intellij完全重新加载后,maven重新加载了项目,一切正常。

您不能使用${user.mail},因为它没有实现可序列化

您需要更改用户类实现可序列化

您可以使用${user.mail}而不是${user.getMail}

试试这个

<%--<c:forEach items="${users}" var="user">
    <tr>
        <td><c:out value="${user.mail}" /></td>
        <td><c:out value="${user.name}" /></td>
        <td><c:out value="${user.org}" /></td>
        <td><c:out value="${user.pw}" /></td>
        <td><c:out value="${user.admin}" /></td>
    </tr>
</c:forEach>--%>

他确实试过${user.mail},但没有成功,我怀疑他试过了。我能看看控制器吗?
<c:forEach items="${users}" var="user">
    <tr>
        <td><c:out value="${user.mail}" /></td>
    </tr>
</c:forEach>
<%--<c:forEach items="${users}" var="user">
    <tr>
        <td><c:out value="${user.mail}" /></td>
        <td><c:out value="${user.name}" /></td>
        <td><c:out value="${user.org}" /></td>
        <td><c:out value="${user.pw}" /></td>
        <td><c:out value="${user.admin}" /></td>
    </tr>
</c:forEach>--%>