获取liferay中的用户列表

时间:2015-06-10 15:25:22

标签: liferay

我想在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());
            }
        }

以及我如何尝试在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) %>
<%} %>

我得到的值是null 我想在列表中显示所有用户名

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

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

  1. renderRequest未定义。
  2. 为用户列表投射例外(UnmodifiableList cannot be cast to java.util.ArrayList)。
  3. 您不是在迭代列表并正确获取用户对象。
  4. 因此,您需要在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 />
            <%}
        }%> 
    

    (经过测试的代码)