在 JSP 中迭代用户名和用户组

Iterate username and usergroup in JSP

我正在尝试编写一个 jsp 代码,它将从应用程序中获取所有用户名及其组。该代码将使用 admin userid 和 pwd 登录到应用程序,并将所有用户名和组带到应用程序中。但我的代码只返回管理员 ID 和组。我如何迭代它以便它带回所有用户 ID 和组?在代码下方,感谢您的帮助。

ISessionMgr sm = CrystalEnterprise.getSessionMgr();
      ies = sm.logon(UserName, password, cms, auth);
      IInfoStore iStore = (IInfoStore)ies.getService("","InfoStore");
      String Query = "SELECT top 10 * FROM CI_SYSTEMOBJECTS WHERE SI_KIND = 'User'AND SI_NAME = '" + UserName + "'";
      IInfoObjects iObjects = iStore.query(Query);

      for(int i=0;i<iObjects.size();i++)
       {

          if (iObjects.size()> 0)
          {

            iObject = (IInfoObject) iObjects.get(i);     
            user = (IUser)iObject;
            java.util.Set usergroups = (java.util.Set)user.getGroups();                
            Iterator iter = usergroups.iterator();
            out.println("<tr bgcolor = lightblue><td>" + user.getTitle() + "</tr></td>");
            String groupName = null;

            while (iter.hasNext())


                    {
  id = String.valueOf(iter.next());
                         String Query1 = "SELECT top 10 * FROM CI_SYSTEMOBJECTS WHERE SI_KIND = 'UserGroup' AND SI_ID = '" + id + "'";
                         IInfoObjects iObjects1 = iStore.query(Query1);


  for(int j=0;j<iObjects1.size();j++)
  {


                         iObject1 = (IInfoObject) iObjects1.get(j);
                         groupName = iObject1.getTitle();
                         out.println("<td>" + groupName + "<br></tr></td>");

我不知道您的应用程序业务逻辑,但我会试一试。 看起来您正在将 SQL 查询缩小到仅 return 用户名是登录用户名的用户。

第 2 行您使用对象 UserName 登录(顺便说一下,如果您能解释变量 UserName 的来源,这将很有用)并且在第 4 行您在 SQL 从所有用户那里查询。

所以我的猜测是,如果您从第一个 SQL 中删除 AND SI_NAME = '" + UserName + "'" 部分,它就会像您希望的那样工作。