如何使用jsp el访问列表中存储的对象的属性,列表本身是类的变量

时间:2015-03-31 21:24:45

标签: java jsp servlets

我正在尝试访问列表中存在的对象变量。该列表本身是对象的可变成员。我试图使用jsp表达式语言显示此变量,但收到此错误。

我的jsp页面如下

                            <h5> ${group1.group_name}</h5>

                            <div>
                            <ul class="list-group"> 
                                <li class="list-group-item title">
                                    <strong style="display:inline;"> About: <h5 style="display: inline;"> ${group1.group_description}</h5></strong>
                                </li> 
                                <c:forEach var="member" items="${members_list}">
                                    <li class="list-group-item title">
                                    <img src="${pageContext.request.contextPath}/css/images/user.png" class="img img-circle" style="display: inline" />
                                    <strong style="display:inline;">  ${member.groupMembersList.member_name} <h5 style="display: inline;">(${member.groupMembersList.member_usertype})</h5></strong>
                                    </li> 
                                </c:forEach>
                            </ul>
                            </div>

                    </c:forEach>

我的servlet将值作为属性传递给上面的jsp

   //current user's user-name
        String currentUser = request.getParameter("username");

        String group_name=null;

        String GetGroupInfo = "select * from groups where creator_username=?";
        //get all the groups where the creator's user-name is currentUser


        try {

            List<GroupObject> groups = new ArrayList<GroupObject>();
            List<Group> SingleGroup  = new ArrayList<Group>();

            ps3 = currentCon.prepareStatement(GetGroupInfo);
            ps3.setString(1,currentUser);
            rs3 = ps3.executeQuery();

            //set values for Group object
            while(rs3.next())
            {
                GroupObject groupObj = new GroupObject();
                Group group = new Group();

                groupObj.setGroup_id(rs3.getString("group_id"));
                groupObj.setGroup_name(rs3.getString("group_name"));
                groupObj.setGroup_description(rs3.getString("group_description"));

                group.setGroup_id(rs3.getString("group_id"));
                group.setGroup_name(rs3.getString("group_name"));
                group.setGroup_description(rs3.getString("group_description"));

                SingleGroup.add(group);

                String query = "select * from group_members where group_id=?";

                ps = currentCon.prepareStatement(query);
                ps.setString(1, groupObj.getGroup_id());

                rs = ps.executeQuery();

                List<GroupDetails> membersList = new ArrayList<GroupDetails>();

                while(rs.next())
                {
                    GroupDetails groupInfo = new GroupDetails();

                    groupInfo.setIs_admin(rs.getString("is_admin"));
                    groupInfo.setAdded_on(rs.getString("added_on"));
                    groupInfo.setCreator_username(rs.getString("creator_username"));
                    groupInfo.setGroup_name(rs.getString("group_name"));
                    groupInfo.setGroup_id(rs.getString("group_id"));
                    groupInfo.setUser_name(rs.getString("user_name"));
                    groupInfo.setMember_id(rs.getString("member_id"));

                    String memberFullname = "select firstname,lastname,user_type from users where username ='" + groupInfo.getUser_name() + "'";

                    ps2 = currentCon.prepareStatement(memberFullname);
                    rs2 = ps2.executeQuery();

                    if(rs2.next())
                    {
                        String member_fullname = rs2.getString("firstname") + " " + rs2.getString("lastname");
                        groupInfo.setMember_name(member_fullname);
                        groupInfo.setMember_usertype(rs2.getString("user_type"));
                    }

                    group_name = groupInfo.getGroup_name();

                    membersList.add(groupInfo);

                }

                groupObj.setGroupMembersList(membersList);

                groups.add(groupObj);

            }

            //request group name
            request.setAttribute("group_name",group_name);
            request.setAttribute("individual_group", SingleGroup);
            request.setAttribute("members_list", groups);
            request.setAttribute("currentUser", currentUser);

            RequestDispatcher rd = request.getRequestDispatcher("/ViewAllExistingGroups");
            rd.forward(request, response);
        } catch (SQLException e) {
            e.printStackTrace();
        }   

我的GroupDetails类

    package pojo.group;

public class GroupDetails {

    private String member_id;
    private String user_name;
    private String creator_username;
    private String group_id;
    private String group_name;
    private String added_on;
    private String is_admin;
    private String member_name;
    private String member_usertype;

    public String getMember_id() {
        return member_id;
    }
    public void setMember_id(String member_id) {
        this.member_id = member_id;
    }
    public String getUser_name() {
        return user_name;
    }
    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }
    public String getCreator_username() {
        return creator_username;
    }
    public void setCreator_username(String creator_username) {
        this.creator_username = creator_username;
    }
    public String getGroup_id() {
        return group_id;
    }
    public void setGroup_id(String group_id) {
        this.group_id = group_id;
    }
    public String getGroup_name() {
        return group_name;
    }
    public void setGroup_name(String group_name) {
        this.group_name = group_name;
    }
    public String getAdded_on() {
        return added_on;
    }
    public void setAdded_on(String added_on) {
        this.added_on = added_on;
    }
    public String getIs_admin() {
        return is_admin;
    }
    public void setIs_admin(String is_admin) {
        this.is_admin = is_admin;
    }
    public String getMember_name() {
        return member_name;
    }

    public void setMember_name(String member_fullname) {
       this.member_name = member_fullname;

    }
    public String getMember_usertype() {
        return member_usertype;
    }
    public void setMember_usertype(String member_usertype) {
        this.member_usertype = member_usertype;
    }
}

欢迎任何帮助。如何从列表groupMembersList中存储的GroupDetails对象访问member_name属性,该对象本身是GroupObjects的变量。帮助jsp el plz

1 个答案:

答案 0 :(得分:0)

您缺少member_name。它可能会变为NULL并导致问题。你可能想说member_id。您提供的代码在那里没有提到member_name。我还要检查并确保应用程序进入if(rs.next()){...}控制流程块,因为这会将member_name分配到请求参数中。

<强>更新

在关于JSP中Java对象访问的评论之后,以下示例应该适合您

<p> Member Name : 
<jsp:useBean id="your_object_name" class="package.with.class">
<jsp:getProperty name="your_object_name" property="member_name">
</p>

替换引号内的文本以正确使用您的类和包名称。