2016-07-26 10 views
1

lifestay에 등록 된 모든 사용자를 표시하는 포틀릿을 만들어야합니다.모든 사용자에게 liferay 표시

여기에 모든 코드를 작성하지 않으시 겠지만 단계별 조치 계획을 제시 할 수 있다면 정말 좋을 것입니다. 데이터베이스에서 정보를 얻는 방법을 이해하지 못하기 때문입니다.

UPD : 1. 자바 파일에서 무엇을 가져 오면 해결할 수 없습니다. 가져 오기 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를 = 20,199, 회사 ID = 20155, createDate = 2016년 6월 6일 08 : 14 : 14.0, modifiedDate = 2016년 6월 6일 8시 14분 : 14.0, defaultUser = 거짓, contactId의 = 20200,

+0

jsp에서 User 클래스 가져 오기가 누락 된 것처럼 보입니다. 또한 사용자 개체는 필요한 모든 특성을 제공합니다. jstl을 사용하여 반복 목록에 google을 추가 할 수 있습니다. 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, 나는 너무 많이 봤지만 아직 해결 방법을 모르겠다 .. – German

답변

2

모든 사용자가 당신이 제공하는 JSP에이 목록을 통과해야 포틀릿 클래스에서 UserLocalServiceUtil.getUsers()

을 살펴 효율적으로 활용하려면 다음

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); 
} 

그리고 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 help pls – German