有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用jsp el显示来自不同组的用户列表

我试图用手风琴显示一组成员的列表。为此,我正在使用jsp、el和servlet

下面是两个数据库表,用于理解该问题

enter image description here

enter image description here

上面是两个表,分别是组和组成员。。我正在从它们访问数据,并将它们存储在两个java对象中,并列出这两个对象

我的servlet如下所示

//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<Group> groups = new ArrayList<Group>();
        List<GroupDetails> groupList = new ArrayList<GroupDetails>();

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

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

            groupObj.setGroup_id(rs3.getString("group_id"));
            groupObj.setGroup_name(rs3.getString("group_name"));
            groupObj.setGroup_description(rs3.getString("group_description"));
            groupObj.setCreator_username(rs3.getString("creator_username"));
            groupObj.setCreated_on(rs3.getString("created_on"));

            groups.add(groupObj);

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

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

            rs = ps.executeQuery();


            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();
                groupList.add(groupInfo);
            }

        }

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

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

Jsp页面以手风琴样式显示组-组名称显示在手风琴标题中,成员显示在手风琴内容中

<body>
<% String username = (String)request.getAttribute("currentUser"); %>
    <div class="container">
        <div class="panel panel-default">
            <div class="panel panel-heading">

            </div>

            <div class="panel panel-body">


                                <div id="accordion">
                            <c:forEach var="group1" items="${individual_group}">


                                    <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="group" items="${groupList}">
                                            <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;">  ${group.member_name} <h5 style="display: inline;">(${group.member_usertype})</h5></strong>
                                            </li> 
                                        </c:forEach>
                                    </ul>
                                    </div>

                            </c:forEach>
                        </div>


                <br/>
                <form action="ListConnectedUsers" method="get">
                    <input type="hidden" name="username" value="<%=username %>" />
                    <input type="submit" class="btn btn-default pull-left" value="Back"/>               
                </form>
            </div>

            <div class="panel panel-footer">

            </div>
        </div>
    </div>
</body>

这就是我在jsp页面中看到的内容。但所有成员都显示在每组手风琴面板中

enter image description here

每个手风琴部分都显示了group_members表中的所有成员。 我希望它在“BEIT教室”中显示三名成员,在“3个伙伴”中显示三名成员,在“SUDD GROUP”中显示一名成员

如果需要,我希望以我解释的方式提供有关jsp el或任何条件的帮助

很抱歉问了这么长的问题,但我试着正确地解释了。请帮忙


共 (1) 个答案

  1. # 1 楼答案

    我想我可以创建一个对象,在其中我可以捆绑组名和组成员全名