2016-07-26 119 views
1

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

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

UPD: 1.我不能解决我应该在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 =假,使用ContactID = 20200,

+0

用户类导入似乎在jsp中丢失。用户对象也会给你所有必需的属性。你可以使用jstl在迭代列表中进行搜索,这应该可以满足你的目的。 –

+0

@ShivamAggarwal当我使用我的代码我有可怕的信息,例如: {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, 我已经google了很多,但我仍然不知道如何解决它.. – German

回答

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如果需要对结果进行分页,则可以指定开始和结束。

+0

我已经听说过关于'UserLocalServiceUtil.getUsers()',但我的问题是关于在它之前要做什么? 这条线应该包含哪些方法?什么应该在jsp中?我应该使用Service Builder吗?你能把它写得更清楚吗? – German

+0

我编辑了我的答案,至于Service Builder,只要你不为自己的表创建服务或引用Liferay的表,就不需要它。 – KLajdPaja

+0

我已更新我的问题,@KLajdPaja帮助请输入 – German