显示所有用户
Show all users liferay
我需要制作一个 portlet 来显示 liferay 中的所有注册用户。
我不是要你在这里写所有代码,但如果你能提出一个逐步的行动计划,我会很感激,因为我真的不明白如何从数据库中获取信息。
更新:
1. 我无法解决我应该在 java 文件中导入什么。
导入 java.io.IOException;
导入 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,
让所有用户看一看 UserLocalServiceUtil.getUsers()
在您的 portlet class 中,您需要将此列表传递给您正在服务的 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
如果您需要对结果进行分页,您可以指定开始和结束。
我需要制作一个 portlet 来显示 liferay 中的所有注册用户。
我不是要你在这里写所有代码,但如果你能提出一个逐步的行动计划,我会很感激,因为我真的不明白如何从数据库中获取信息。
更新: 1. 我无法解决我应该在 java 文件中导入什么。 导入 java.io.IOException; 导入 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,
让所有用户看一看 UserLocalServiceUtil.getUsers()
在您的 portlet class 中,您需要将此列表传递给您正在服务的 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
如果您需要对结果进行分页,您可以指定开始和结束。