не може да избере пълен списък от таблицата с помощта на сервлет и jstl

Хей, момчета, опитвам се да извлека пълен списък с потребители в таблицата от базата данни, но за съжаление не мога да го направя. Ето кода

1.> Изтриване на потребител.java

package roseindia.net;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

 /**
 * Servlet implementation class Deleteuser
 */
 @WebServlet("/Deleteuser")
 public class Deleteuser extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public Deleteuser() {
    super();
    // TODO Auto-generated constructor stub
}

 //String msg=" ";
    String fname=" ";
    String mname=" ";
    String lname=" ";
    String uname=" ";
    String emailid=" ";
    String mobno=" ";
    String address=" ";
    //String password1=" ";
//String password2=" ";
    String usertype=" ";
    String id=" ";

    public void setFname(String fname) {
    this.fname = fname;
    }
    public void setMname(String mname) {
    this.mname = mname;
    }
    public void setLname(String lname) {
    this.lname = lname;
    }
    public void setUname(String uname) {
    this.uname = uname;
    }
    public void setEmailid(String emailid) {
    this.emailid = emailid;
    }
    public void setMobno(String mobno) {
    this.mobno = mobno;
    }
    public void setAddress(String address) {
    this.address = address;
    }
public void setUsertype(String usertype) {
    this.usertype = usertype;
    }
public void setId(String id) {
    this.id = id;
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */

    public static List<Deleteuser> list() throws Exception {
    Connection conn=null;
    String url="jdbc:mysql://localhost:3306/";
    String dbName="userlogindb";
    String driver="com.mysql.jdbc.Driver";
    String dbUserName="root";
    String dbPassword="root";

    //List<String> dataList = new ArrayList<String>(); 
    List<Deleteuser> users = new ArrayList<Deleteuser>();

    try{
    Class.forName(driver).newInstance();
    conn = DriverManager.getConnection(url+dbName,dbUserName,dbPassword);
    String strQuery="select * from registerutable";
    System.out.println("The sql is " +strQuery); 
    Statement st= conn.createStatement();
    ResultSet rs= st.executeQuery(strQuery);

    while(rs.next())
    {   
        Deleteuser user = new Deleteuser();
        user.setFname(rs.getString("fname"));
        user.setMname(rs.getString("mname"));
        user.setLname(rs.getString("lname"));
            user.setUname(rs.getString("uname"));
        user.setEmailid(rs.getString("emailid"));
        user.setMobno(rs.getString("mobno"));
        user.setAddress(rs.getString("address"));
        user.setUsertype(rs.getString("usertype"));
        user.setId(rs.getString("id"));
        users.add(user);    
}
rs.close();
st.close();
}
catch(Exception e)
{
    e.printStackTrace();
}
return users;
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub

    System.out.println("We are in the doPost method of Deleteuser");

    response.setContentType("text/html");
    PrintWriter out=response.getWriter();


    try{
    List<Deleteuser> users = Deleteuser.list();
    request.setAttribute("users",users);
    }
    catch(Exception e)
    {
    System.out.println(e);
    }

      //Disptching request

          RequestDispatcher dispatcher =  request.getRequestDispatcher("successful.jsp");

      if (dispatcher != null){

          dispatcher.forward(request, response);

          }

      //out.println("<font size='6' color=red>" + msg + "</font>");

}

  }

2.> successful.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<!--<%@page language="java" import="java.util.*" %>-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Successful</title>
</head>
<body>
<form name="deleteform" action="Deleteuser" method="post">
<p><b><i>List of user details:</i></b></p>
<table border="1">
<tr>
<th>First Name</th>
<th>Middle Name</th>
<th>Last Name</th>
<th>User Name</th>
<th>Email id</th>
<th>Mobile No</th>
<th>Address</th>
<th>Usertype</th>
<th>ID</th>
</tr> 

<c:forEach items="${users}" var="user">
<tr>
<td><c:out value="${user.fname}" /></td>
<td><c:out value="${user.mname}" /></td>
<td><c:out value="${user.lname}" /></td>
<td><c:out value="${user.uname}" /></td>
<td><c:out value="${user.emailid}" /></td>
<td><c:out value="${user.mobno}" /></td>
<td><c:out value="${user.address}" /></td>
<td><c:out value="${user.usertype}" /></td>
<td><c:out value="${user.id}" /></td>
</tr>
</c:forEach>
</table>
</form>
</body>
</html>

Тук не мога да покажа списъка с потребители от таблицата на базата данни. Аз също не получавам никаква грешка.

Сериозни извинения, не съм използвал MVC, защото първо искам да го направя само с една java програма.

Добавих всички необходими jar файлове.

Моля, уведомете ме, ако пропускам нещо или не следвам правилната техника/стандарт.


person Atiq    schedule 27.03.2014    source източник
comment
Значи първо зареждате sucessful.jsp?   -  person JavaLearner    schedule 27.03.2014


Отговори (2)


За да използвате EL синтаксис за получаване на стойността на обекта, Pseudo Getter трябва да бъде внедрен.

Така че дефинирайте getter за всички елементи.

${user.fname} implicitly calls user.getFname()
person JavaLearner    schedule 27.03.2014
comment
Deepak2221 Опитах се да получа стойност на обект, но не успях. Ще ме насочите ли, моля. Опитах също да използвам ‹% java.util.ArrayList users = new java.util.ArrayList(); %› но все още няма резултат. - person Atiq; 27.03.2014
comment
Опитах също да използвам ‹%=pageContext.getAttribute(user.fname, PageContext.PAGE_SCOPE) %›, но все още няма резултат, къде греша. - person Atiq; 27.03.2014

Не сте написали никакви getter методи.

EL оператор ${user.fname} е като извикване на user.getFname() и нямате getter методи.

Дефинирайте getter методи за всички екземплярни променливи в Deleteuser.java.

public String getFname() {
    return fname;
}
public void setFname(String fname) {
    this.fname = fname;
}
public String getMname() {
    return mname;
}
public void setMname(String mname) {
    this.mname = mname;
}
public String getLname() {
    return lname;
}
public void setLname(String lname) {
    this.lname = lname;
}
public String getUname() {
    return uname;
}
public void setUname(String uname) {
    this.uname = uname;
}
public String getEmailid() {
    return emailid;
}
public void setEmailid(String emailid) {
    this.emailid = emailid;
}
public String getMobno() {
    return mobno;
}
public void setMobno(String mobno) {
    this.mobno = mobno;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}
public String getUsertype() {
    return usertype;
}
public void setUsertype(String usertype) {
    this.usertype = usertype;
}
public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}
person Aniket Kulkarni    schedule 27.03.2014
comment
Aniket Kulkarni Опитах се да получа стойност на обект, но не успях. Ще ме насочите ли, моля. Опитах също да използвам ‹% java.util.ArrayList users = new java.util.ArrayList(); %› но все още няма резултат. - person Atiq; 27.03.2014
comment
Опитах също да използвам ‹%=pageContext.getAttribute(user.fname, PageContext.PAGE_SCOPE) %›, но все още няма резултат, къде греша. - person Atiq; 27.03.2014
comment
трябва ли да добавя това изявление =› user.getFname(rs.getString(fname)); - person Atiq; 27.03.2014