获取liferay中的用户列表

获取liferay中的用户列表,liferay,Liferay,我想在liferay上显示用户列表。我对它有意见。 这是我的动作课 public void userList(ActionRequest actionRequest, ActionResponse actionResponse) throws SystemException { // Todo Logic for user code try { int countUser = UserLocalServiceUtil.getUsersCount();

我想在liferay上显示用户列表。我对它有意见。 这是我的动作课

public void userList(ActionRequest actionRequest, ActionResponse actionResponse) throws SystemException {
    // Todo Logic for user code
    try {
        int countUser = UserLocalServiceUtil.getUsersCount();
        log.info("User Present In DB" + countUser);
        List < User > users = UserLocalServiceUtil.getUsers(0, countUser);
        PortletSession sessions = actionRequest.getPortletSession();
        sessions.setAttribute("users", users);
        log.info("Session set from My Portlet" + sessions.getAttribute("users"));
        for (User user: users) {
            if (user != null) {
                log.info("UserID--:" + user.getUserId() + "UserCompanyID-:" + user.getCompanyId() + "UserEmail-:" + user.getEmailAddress() +
                    "UserScreenName--:" + user.getScreenName());
            }
        }
public void用户列表(ActionRequest ActionRequest、ActionResponse ActionResponse)引发系统异常{
//用户代码的Todo逻辑
试一试{
int countUser=UserLocalServiceUtil.getuserscont();
log.info(“数据库中存在的用户”+countUser);
Listusers=UserLocalServiceUtil.getUsers(0,countUser);
PortletSessions=actionRequest.getPortletSession();
sessions.setAttribute(“用户”,用户);
log.info(“从我的Portlet设置的会话”+sessions.getAttribute(“用户”);
for(用户:用户){
如果(用户!=null){
log.info(“UserID--:”+user.getUserId()+“UserCompanyID-:”+user.getCompanyId()+“UserEmail-:”+user.getEmailAddress()+
“UserScreenName——:”+user.getScreenName());
}
}
以及如何在jsp上获取用户列表

<%@page import="com.test.UserList.userList"%>
<%@page import="java.util.ArrayList"%>
<%@page import="com.liferay.portal.model.User"%>
<%@page import="java.util.List"%>
<%@page import="javax.portlet.PortletSession"%>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@taglib uri="http://alloy.liferay.com/tld/aui" prefix="aui" %>

<portlet:defineObjects />
<%
     PortletSession session2 = renderRequest.getPortletSession();
     ArrayList<User> users = (ArrayList) session2.getAttribute("users");

     if(users!=null){
%>
    <b>Name: </b><%=users.get(users) %>
<%} %>

姓名:
我得到的值是空的
我想显示列表中的所有用户名

将用户列表放入会话中的逻辑没有问题,列表正在填充并在会话中准确设置。 但是,在JSP上,存在两个问题:

  • renderRequest未定义
  • 用户列表的强制转换异常(
    UnmodifiableList不能强制转换为java.util.ArrayList
  • 您没有正确地迭代列表和获取用户对象
  • 因此,您需要在JSP上执行以下操作:

    <%@page import="java.util.ArrayList"%>
    <%@page import="javax.portlet.RenderRequest"%>
    <%@page import="com.liferay.portal.model.User"%>
    <%@page import="javax.portlet.PortletSession"%>
    
    <%
        RenderRequest renderRequest = 
            (RenderRequest) request.getAttribute("javax.portlet.request");
        PortletSession session = renderRequest.getPortletSession();
        List<User> users = (List<User>) session.getAttribute("users");
    
        if(users != null){
            for(User user : users){
    %>
                <b>Name: </b><%=user.getLastName() + ", " + user.getFirstName() %><br />
            <%}
        }%> 
    
    
    名称:

    (测试代码)

    在会话中放置用户列表的逻辑没有问题,列表在会话中被准确地填充和设置。 但是,在JSP上,存在两个问题:

  • renderRequest未定义
  • 用户列表的强制转换异常(
    UnmodifiableList不能强制转换为java.util.ArrayList
  • 您没有正确地迭代列表和获取用户对象
  • 因此,您需要在JSP上执行以下操作:

    <%@page import="java.util.ArrayList"%>
    <%@page import="javax.portlet.RenderRequest"%>
    <%@page import="com.liferay.portal.model.User"%>
    <%@page import="javax.portlet.PortletSession"%>
    
    <%
        RenderRequest renderRequest = 
            (RenderRequest) request.getAttribute("javax.portlet.request");
        PortletSession session = renderRequest.getPortletSession();
        List<User> users = (List<User>) session.getAttribute("users");
    
        if(users != null){
            for(User user : users){
    %>
                <b>Name: </b><%=user.getLastName() + ", " + user.getFirstName() %><br />
            <%}
        }%> 
    
    
    名称:

    (测试代码)

    获取所有用户列表的另一个选项是

    UserLocalServiceUtil.getUsers(QueryUtil.ALL_POS, QueryUtil.ALL_POS);
    

    然后迭代以获取每个用户。

    获取所有用户列表的另一个选项是

    UserLocalServiceUtil.getUsers(QueryUtil.ALL_POS, QueryUtil.ALL_POS);
    

    然后迭代它以获取每个用户。

    使用会话而不是请求设置属性有什么特殊原因吗?@LuckyBoy没有。如果有,那么可以使用request.setAttribute()要设置值并稍后在jsp中检索它,这意味着没有任何方法可以使用会话属性检索值?我尝试这样获取它
    List users=UserLocalServiceUtil.getUsers(0,UserLocalServiceUtil.getuserscont());
    并显示用户的全部详细信息。我只想显示用户名使用会话而不是请求设置属性背后的任何特殊原因?@LuckyBoy没有任何特殊原因。如果是,则可以使用request.setAttribute()要设置值并稍后在jsp中检索它。这意味着没有任何方法可以使用会话属性检索值?我尝试按如下方式获取它:
    List users=UserLocalServiceUtil.getUsers(0,UserLocalServiceUtil.getuserscont());
    并显示用户的全部详细信息。我只想显示用户名