Продолжайте получать javax.el.PropertyNotFoundException: у класса '...' нет свойства '...' - PullRequest
1 голос
/ 12 марта 2011

Я делаю проект, который ищет конкретного члена из моей базы данных, ищет его memberId , а затем показывает выбранную информацию, но У меня проблемы с моим Java Class Setter (не совсем уверен, действительно ли это была проблема), потому что я продолжаю получать сообщение об ошибке из catch (Exception ex)

javax.el.PropertyNotFoundException: класс 'Project.Members' не имеетсвойство 'FirstName'.

Можете ли вы помочь мне выяснить, что не так с моим кодом?

Это мой код сервлета:

public class SearchAMember extends HttpServlet {


protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    Connection con = null;
    PreparedStatement stmt = null;
    ResultSet rs = null;
    String query = "SELECT memberId, FirstName FROM members WHERE memberId = ?";
    try {
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet SelectDemo</title>");
        out.println("</head>");
        out.println("<body>");

        try {
            Class.forName(Connect.DRIVER);
            con = DriverManager.getConnection(Connect.CONNECTION_STRING,
                    Connect.USERNAME, Connect.PASSWORD);

            stmt = con.prepareStatement(query);
            int findId = Integer.parseInt(request.getParameter("id"));
            stmt.setInt(1, findId);
            rs = stmt.executeQuery();

            Members std;
            if (rs.next()) {
                std = new Members();
                std.setMemberId(rs.getInt("memberId"));
                std.setFirstName(rs.getString("FirstName"));
                request.setAttribute("Members", std);
                RequestDispatcher rd = request.getRequestDispatcher("/DisplayAllMembers.jsp");
                rd.forward(request, response);
            } else {
                out.println("No record found...");
            }

        } catch (ClassNotFoundException ex) {
            out.println("Driver not found...");
        } catch (SQLException ex) {
            out.println("Failed connection or query...." + ex.getMessage());
        } catch (Exception ex) {
            out.println("Error.... " + ex.getMessage());
        } finally {
            try {
                con.close();
            } catch (SQLException ex) {
            }
        }
    } finally {
        out.println("</body>");
        out.println("</html>");
        out.close();
    }
}

/*<--HttpServlet Method was here-->*/
}

}

и мой Member.java класс для моего метода получения и установки:

public class Members {

private int memberId;
private String Username;
private String Password;
private String FirstName;
private String MiddleName;
private String LastName;
private String Address;
private String Email;
private int CurrPoints;

public String getAddress() {
    return Address;
}

public int getCurrPoints() {
    return CurrPoints;
}

public String getEmail() {
    return Email;
}

public String getFirstName() {
    return FirstName;
}

public String getLastName() {
    return LastName;
}

public String getMiddleName() {
    return MiddleName;
}

public String getPassword() {
    return Password;
}

public String getUsername() {
    return Username;
}

public int getMemberId() {
    return memberId;
}

public void setAddress(String Address) {
    this.Address = Address;
}

public void setCurrPoints(int CurrPoints) {
    this.CurrPoints = CurrPoints;
}

public void setEmail(String Email) {
    this.Email = Email;
}

public void setFirstName(String FirstName) {
    this.FirstName = FirstName;
}

public void setLastName(String LastName) {
    this.LastName = LastName;
}

public void setMiddleName(String MiddleName) {
    this.MiddleName = MiddleName;
}

public void setPassword(String Password) {
    this.Password = Password;
}

public void setUsername(String Username) {
    this.Username = Username;
}

public void setMemberId(int memberId) {
    this.memberId = memberId;
}

}

также это мой Jsp :

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <h1>Members Information</h1>
    Id: ${Members.memberId}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Name: ${Members.FirstName}<br/>
</body>

Была ли проблема в моем Members.java классе?Я действительно не знаю, что с ним не так ... пожалуйста, помогите ...

1 Ответ

3 голосов
/ 12 марта 2011

Вы должны соблюдать соглашения об именах Java.Переменные всегда начинаются со строчной буквы.Свойства также начинаются со строчной буквы.И поскольку класс Members представляет одного члена, вы также должны называть его Member, а не Members.

request.setAttribute("member", std);

public class Member {
    private String firstName;
    // ...
    public String getFirstName() {
        return this.firstName;
    }
}

Id: ${member.memberId}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Name: ${member.firstName}<br/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...