2015-03-31 3 views
0

Я создал портлет, в котором я собираю данные пользователя, фильтрующие список, на основе некоторого условия в моем классе действий. Теперь, как передать результаты (список пользователей) из моего класса action в view.jsp?Как передать объект User из класса action в 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); А также пользователь подсчитывает то же самое. Теперь в jsp просто замените следующие строки.

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

Не уверен, что вам может понадобиться литье некоторых типов и на вышеуказанные линии.

+0

Если я установил actionRequest.setAttribute ("userList", userList); то я получу список всех пользователей. Но мне нужно добавить пользователей, которые печатают в «if (user.getFacebookId() == 12345 && user.getStatus() == 0) {.....} "петля. Итак, как я могу добавить список пользователей, которые входят в результаты цикла If. Заранее спасибо –

+1

обновил код согласно вашим требованиям – Danish

+0

Большое вам спасибо. У меня есть окончательный запрос. В моем классе действий Есть ли какой-либо метод init, чтобы перед рендерингом моей первой страницы мне нужно было добавить список пользователей в мой запрос на действие. Поэтому каждый раз при рендеринге моего view.jsp этот метод init должен вызывать и устанавливать список пользователей в моем методе init. Как я могу это сделать? –