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

标签 java jquery jsp servlets

我正在尝试使用 Accordion 显示组中的成员列表。我为此目的使用 jsp、el 和 servlet。

这里有两个数据库表用于理解问题

enter image description here

enter image description here

上面分别是两个表 -groups 和 group_members ..我正在从它们访问数据并将它们存储在两个 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 页面以 Accordion 样式显示组 - 组名称显示在 Accordion 标题中,成员显示在 Accordion 内容中。

<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 页面中得到的内容。但所有成员都显示在 Accordion 面板的每组中

enter image description here

每个 Accordion 部分都显示 group_members 表中的所有成员。 我希望它显示 'BEIT Classroom' 中的 3 名成员、'3 BUDDIES' 中的 3 名成员和 'SUDD GROUP' 中的 1 名成员

如果需要以我解释的方式呈现,我需要 jsp el 或任何条件的帮助。

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

最佳答案

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

关于java - 使用jsp el显示不同组的用户列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29335057/

相关文章:

javascript - 如何使用插件的javascript设置小时和分钟

java - Tomcat 6/7,Java 8 : Can't compile JSP: [various types] cannot be resolved

java - 刷新页面而不刷新iframe

java - “直接 self 参照导致循环” jackson 和继承

java - Java 8 中的功能接口(interface)(方法执行时间记录器)

java - 如果数组长度为 100000,则使用归并排序计算反转会给出负数

jquery - 除非元素包含特定类,否则触发文档上的事件

java - 如何在 java 中使用 Apache POI XWPF 将图片添加到 .docx 文档

javascript - 4-5 Ajax 调用成功后调用 javascript 函数

html - 如何在页面加载后将 html 数据和文本输出到页面。之前没有