繁体   English   中英

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

[英]How to access properties of a object stored in list which itself is variable of a class using jsp el

我正在尝试访问列表中存在的对象的变量。 该列表本身是对象的变量成员。 我试图使用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

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

更新

在对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>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM