2015-03-31 48 views
0

我已經創建了一個portlet,我在該操作類中根據某些條件獲取用戶詳細信息,以過濾列表。現在我怎樣才能將我的action類的結果(用戶列表)傳遞給view.jsp?如何將用戶實體結果從操作類傳遞到view.jsp

我的Action類的代碼,

public void addEntry(ActionRequest request, ActionResponse response) throws PortalException, SystemException 
{ 
int usersCount = UserLocalServiceUtil.getUsersCount(); 
      List<User> usersList = UserLocalServiceUtil.getUsers(0 , usersCount); 
      System.out.println("List Size is ===>"+ usersList); 
      if (usersList != null) { 
      for (User user : usersList) { 
          if(user.getFacebookId() == 12345 && user.getStatus() == 0) 
          { 
            System.out.println(((Long) user.getUserId()).toString()+ "," + user.getFullName()+ "," + user.getFirstName()+ "," + user.getLastName()+ "," + user.getScreenName()); 

          } 
       } 
      } 

} 

在我的動作類我過濾基於FacebookID和用戶狀態列表。它正在打印所需的用戶列表。現在如何將過濾用戶列表發送到我的查看頁面。

查看網頁代碼,

<liferay-ui:search-container delta="10" emptyResultsMessage="no-users-were-found"> 
     <liferay-ui:search-container-results 
       results="<%=UserLocalServiceUtil.getUsers(searchContainer.getStart(), searchContainer.getEnd())%>" 
     total="<%=UserLocalServiceUtil.getUsersCount()%>" /> 


     <liferay-ui:search-container-row 
       className="com.liferay.portal.model.User" 
       keyProperty="userId" 
       modelVar="user" 
     > 
       <liferay-ui:search-container-column-text 
         name="name" 
         value="<%= user.getFullName() %>" 
       /> 

       <liferay-ui:search-container-column-text 
         name="first-name" 
         property="firstName" 
       /> 
       <liferay-ui:search-container-column-text 
         name="last-name" 
         property="lastName" 
       /> 
       <liferay-ui:search-container-column-text 
         name="screen-name" 
         property="screenName" 
       /> 
     </liferay-ui:search-container-row> 

     <liferay-ui:search-iterator /> 

</liferay-ui:search-container> 

<liferay-ui:search-container delta="10" emptyResultsMessage="no-users-were-found" /> 

任何建議,我怎麼能在動作類的篩選器列表傳遞給liferay-ui:search-container-results

在此先感謝。

回答

1
List<User> tempList = new ArrayList<User>(); 
    for (User user : usersList) { 
           if(user.getFacebookId() == 12345 && user.getStatus() == 0) 
           { 
            tempList.add(user);           
            System.out.println(((Long) user.getUserId()).toString()+ "," + user.getFullName()+ "," + user.getFirstName()+ "," + user.getLastName()+ "," + user.getScreenName()); 

           } 
    } 
     actionRequest.setAttribute("userList",tempList);   

通過使用actionRequest.setAttribute(「userList」,tempList)將ActionList中的usersList放置在Action類中。用戶也以同樣的方式計數。現在在jsp中只需替換下面幾行。

results="<%=request.getAttribute("userList")%>" 
    total="<%=request.getAttribute("count")%> 

不知道你可能需要一些類型鑄造也在上述行。

+0

如果我設置了actionRequest.setAttribute(「userList」,usersList);那麼我將獲得所有用戶列表正確但我需要添加打印在「if(user.getFacebookId()== 12345 && user.getStatus()== 0) {.....} 「循環。那麼如何添加If循環結果中的用戶列表。在此先感謝 – 2015-03-31 08:40:56

+1

根據您的要求更新了代碼 – Danish 2015-03-31 10:20:39

+0

非常感謝。我有最後一個查詢,在我的動作類有沒有任何方式的init方法,以便在呈現我的第一頁之前,我需要添加用戶列表到我的動作請求。所以每次渲染我的view.jsp時,這個init方法都應該在init方法中調用並設置用戶列表。我怎樣才能做到這一點? – 2015-03-31 10:46:16

相關問題