【问题标题】:why the ArrayList is Returning empty strings [] [] []?为什么 ArrayList 返回空字符串 [] [] []?
【发布时间】:2012-09-13 21:26:58
【问题描述】:

这是我的数据库查询功能

        public static List<UserPass> selectAllUser() {
            ConnectionPool pool = ConnectionPool.getInstance();
            Connection connection = pool.getConnection();
            PreparedStatement ps = null;
            ResultSet rs = null;

            List<UserPass> usersPass = new ArrayList<UserPass>();

            String query = "select * from UserPass";
            try{
            ps = connection.prepareStatement(query);
            rs = ps.executeQuery();

            while(rs.next()){
            UserPass users = new UserPass();
            users.setUserName(rs.getString("user_name"));
            usersPass.add(users);

            }

            return usersPass;

这是我的 UserPass 对象获取函数

   public ArrayList<UserPass> getusernames(){

   return usernames;
   }

我的 servlet dopost 就是这个

    request.setAttribute("users", UserPassDb.selectAllUser());

    String forward = "/testpage.jsp";
    RequestDispatcher view = request.getRequestDispatcher(forward);
    view.forward(request, response);

我的显示jsp页面是

            <form action="TestServlet" method="post">
                <input type="submit">

            </form>

            <c:forEach var="user" items="${users}">

                <c:out value="${user.usernames}"/> 

            </c:forEach>

UserPass 类

            /*
            * To change this template, choose Tools | Templates
            * and open the template in the editor.
            */
            package business;

            import java.io.Serializable;
            import java.util.ArrayList;

            /**
            *
            * @author One
            */
            public class UserPass implements Serializable {


                public String username;
                public String password;

                public ArrayList<UserPass> usernames;


                public UserPass(){
                    this.username ="";
                    this.password ="";  
                    this.usernames = new ArrayList<UserPass>();
                }

                public void setUserName(String username) {
                    this.username = username;

                }
                public String getUserName(){

                    return username;
                }

                public ArrayList<UserPass> getusernames(){

                return usernames;
            }
                public void setusernames(ArrayList<UserPass> a){

                    this.usernames = a;
                }
            }

尝试更改它告诉我属性不存在时,据我所知。我肯定错了

提前致谢

【问题讨论】:

    标签: jsp jakarta-ee servlets web


    【解决方案1】:

    你有getusernames(),它返回ArrayList,你没有提到setusernames(ArrayList&lt;UserPass&gt; )

    但是,如果你想显示用户名,在 JSP 中,改变

    <c:forEach var="user" items="${users}">
    
            <c:out value="${user.username}"/> 
    
    </c:forEach>
    

    这是如何工作的:

    这里users是请求属性,它是List&lt;UserPass&gt;。现在,当您使用 forEach 对其进行迭代时,您会在 user 中为每一行获得 UserPass

    然后user.usernameUserPass bean 调用getUserName

    在你的情况下user.usernames,它返回空Arraylist

    【讨论】:

    • 但是当我更改为用户名时,它告诉我该属性在 UserPass 类中不存在..
    • 你能分享UserPass类吗?
    猜你喜欢
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 2020-08-27
    • 2016-11-23
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    相关资源
    最近更新 更多