显示所有用户liferay

时间:2016-07-26 13:21:18

标签: liferay liferay-6 liferay-aui liferay-ide

我需要创建一个portlet来显示liferay中的所有注册用户。

我不是要求你在这里编写所有代码,但如果你能提出一步一步的行动计划,我会很感激,因为我真的不明白如何从数据库中获取信息。

UPD:  我无法解决我在java文件中导入的内容。     import java.io.IOException;     import java.util.List;

import javax.portlet.PortletException;
import javax.portlet.PortletPreferences;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.transaction.SystemException;

import com.liferay.portal.kernel.dao.orm.QueryUtil;
import com.liferay.portal.model.User;
import com.liferay.portal.service.UserLocalServiceUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;
public class ShowUsers extends MVCPortlet {

public void render(RenderRequest renderRequest, RenderResponse renderResponse) throws IOException, PortletException{
            Log log = LogFactoryUtil.getLog(ShowUsers.class);
            List<User> users = null;
            try {
                users = UserLocalServiceUtil.getUsers(QueryUtil.ALL_POS, QueryUtil.ALL_POS);
            } catch (com.liferay.portal.kernel.exception.SystemException e) {
                log.info("Exception happened");
            }
            renderRequest.setAttribute("allUsers", users );
            super.render(renderRequest, renderResponse);

     }

}

=================== 我的jsp文件:

    <%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
    <%@ page import="java.util.List" %>
    <%@ page import="com.liferay.portal.model.User" %>
    <%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> 
    <portlet:defineObjects /> 
    <%
         List<User> thatusers = renderRequest.getAttribute("allUsers");
    %>

    <ul>
    <% for (User user : thatusers) { %>
    <li><%= user %></li>
    <% } %> 
    </ul>

在这段代码之后,我有关于所有用户的奇怪信息,我只需要它的名字!这样:

{uuid = fb7224c0-2488-45c1-97b8-5608450435a6,userId = 20199,companyId = 20155,createDate = 2016-06-06 08:14:14.0,modifiedDate = 2016-06-06 08:14:14.0, defaultUser = false,contactId = 20200,

1 个答案:

答案 0 :(得分:2)

让所有用户看一看UserLocalServiceUtil.getUsers()

在您的portlet类中,您需要将此列表传递给您正在服务的jsp:

public void doView(RenderRequest renderRequest, RenderResponse renderResponse)
throws IOException, PortletException {
    List<User> users =  UserLocalServiceUtil.getUsers(QueryUtil.ALL_POS, QueryUtil.ALL_POS);
    renderRequest.setAttribute("allUsers", users );
    super.doView(renderRequest, renderResponse);
}  

并且在你的jsp中使用JSTL迭代allUsers列表来获取用户对象。

getUsers(QueryUtil.ALL_POS, QueryUtil.ALL_POS);将检索所有用户,而不是QueryUtil.ALL_POS,如果您需要对结果进行分页,则可以指定开始和结束。