从属性获取Null值 [英] Getting Null value from attribute

查看:106
本文介绍了从属性获取Null值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在动态网络应用程序中,我遇到了一些问题,所以我发布了我的代码:

In the Dynamic web application I facing some issues,so I'm posting my code:

这是我的控制器(servlet):

Here is my controller(servlet):

        String select = request.getParameter("select");  // getting proper value
        String search = request.getParameter("search");  // getting proper value
        request.setAttribute("select", select);
        request.setAttribute("search", search);
        System.out.println("Select : "+select+" Search : "+search);

            int page = 1;
            int recordsPerPage = 20;
            if(request.getParameter("page") != null)
                page = Integer.parseInt(request.getParameter("page"));
            SearchDAO searchDAO=new SearchDAO();
            List<User> list=searchDAO.searchAllUsers((page-1)*recordsPerPage,recordsPerPage,select,search);
            int noOfRecords = searchDAO.getNoOfRecords();
                    System.out.println("4> NoOfRecords : "+noOfRecords);
            int noOfPages = (int) Math.ceil(noOfRecords * 1.0 / recordsPerPage);
                    System.out.println("5> NoOfPages : "+noOfPages);
            request.setAttribute("searchList", list);
            System.out.println("6> List : "+list);
            request.setAttribute("noOfPages", noOfPages); // Getting null value, 0
            request.setAttribute("currentPage", page); // Getting null value, 0
            RequestDispatcher view = request.getRequestDispatcher("/jsp/Securex_Anti_Theft_SearchUserList.jsp");
            view.forward(request, response);

这是我的DAO(简单java类):

And here is my DAO (simple java class):

public class SearchDAO {
private int noOfRecords;
Connection connection;
Statement stmt;

    public List<User> searchAllUsers(int offset ,int noOfRecords,String select,String search){
    private static Connection getConnection() throws SQLException,ClassNotFoundException{
    Connection con = ConnectionFactory.getInstance().getConnection();
    return con;  //ConnectionFactory is class for making the connection to DB.
}
     String query="select SQL_CALC_FOUND_ROWS * from info where '"+select+
"' like '%"+search+"%' order by serialNo asc limit 
" + offset + " , " + noOfRecords;

    List<User> list1 = new ArrayList<User>();
    User user1=null;

    try {
        connection = getConnection();
        stmt = connection.createStatement();
        ResultSet rs=stmt.executeQuery(query);
        System.out.println("1> :"+rs);
        while(rs.next()){
        user1=new User();
        user1.setSerial(rs.getInt(1));
        System.out.println("I'm inside a loop");
        user1.setName(rs.getString(2));
        user1.setEmail(rs.getString(3));
        list1.add(user1);
        }

        rs.close();
        rs = stmt.executeQuery("SELECT FOUND_ROWS()");
        System.out.println("2> :" +rs);
        if(rs.next())
            this.noOfRecords = rs.getInt(1); 
           System.out.println("3> :" +this.noOfRecords);

    } catch (SQLException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }finally
    {
        try {
            if(stmt != null)
                stmt.close();
            if(connection != null)
                connection.close();
            } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    return list1;

}

public int getNoOfRecords() {
    return noOfRecords;
}
}

输出为:

1> :com.mysql.jdbc.JDBC4ResultSet@1af8502
2> :com.mysql.jdbc.JDBC4ResultSet@455aa8
3> :0
4> NoOfRecords : 0
5> NoOfPages : 0
6> List : []

对于所有用户,我有相同的servlet和类,并且工作正常, bbut从此处获取空值.En ResultSet返回值即com.mysql.jdbc.JDBC4ResultSet @ 88d319,但无法从DAO获取值到servlet。

I have same same servlet and class for select all users,and that's working properly,bbut getting null value from here.Even ResultSet returns value i.e. com.mysql.jdbc.JDBC4ResultSet@88d319,but unable fetch the value from DAO to servlet.

获取空值来自 // 属性,对我来说一切都应该没问题,但仍然得到空值,随时指出我的错误,如果我做了什么

Getting null value from // attributes,To me everything should be going fine but still getting null value,feel free to point out my mistake,If I have done anything

推荐答案

很可能你的DAO返回空列表。所有其他代码看起来很好。所以,首先我会检查这个电话

Most likely your DAO returns empty list. All other code looks fine. So, first of all I would check this call

searchDAO.searchAllUsers((page-1)*recordsPerPage,recordsPerPage,select,search);

page 变量的值是多少?其他参数?请在以下后面记录查询

What is the value for page variable? Other parameters? Please log the query after:

 String query="select SQL_CALC_FOUND_ROWS * from info where '"+select+
"' like '%"+search+"%' order by serialNo asc limit 
" + offset + " , " + noOfRecords;

并单独针对DB运行,它应该给你答案。

and run it separately against DB, it should give you an answer.

这篇关于从属性获取Null值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆