2015-12-18 4 views
0

Я создал портлет MVC. В методе doView я получаю пользовательский список (пользовательский) на основе текущего пользователя входа.Liferay Pagination не работает

@Override 
    public void doView(RenderRequest renderRequest, RenderResponse renderResponse){ 
List<LeadPojo> leadpojoli = new ArrayList<LeadPojo>(); 
LeadList lead_list = new LeadList(); 
leadpojoli = lead_list.getRecords(themeDisplay.getUserId()+""); 
renderRequest.setAttribute("all_lead", leadpojoli); 
super.doView(renderRequest, renderResponse); 
} 

В View.jsp я создал «Liferay-УИ: поиск-контейнер» с дельтой 5. Когда я нажимаю «Далее» или «Предыдущий» это выборку следующих 5 записей, и это работающий штраф в view.jsp.

Теперь пользователь может выбрать опцию «Edit» от «действий» .Now получить текущий идентификатор записи и вызов метода editRecord [В этом методе я забирающий больше двух списков (контактов и активность), основанных на выбранную запись] из класса MVC и затем загружать в другой «edit.jsp» с соответствующими списками, объектом и переменными.

В «edit.jsp» также есть два контейнера liferay-ui: search-container и когда я нажимаю кнопки «next» или «предыдущие» из «liferay-ui: search-container» в поле «edit.jsp» «он возвращается к предыдущей странице, т. е. выполняется метод doview.

Как извлечь следующий набор записей в LifeRay-Ui: поиск-контейнер образуют «edit.jsp». Два liferay-ui: search-container показывает общее количество списков, но не получает следующий набор записей.

private void editRecord(ActionRequest request, ActionResponse response,String backURL) throws IOException { 
    String recordId = ParamUtil.getString(request,'selectedId'); 
    List<LeadActivity> leadactivityli = new ArrayList<LeadActivity>(); 
    LeadProcess call = new LeadProcess(); 
    leadactivityli = call.getList(recordId); 

    List<ContactPojo> allcon = new ArrayList<ContactPojo>(); 
    ContactList conli = new ContactList(); 
    allcon = conli.getContactList(recordId); 
      request.setAttribute("allcontacts", allcon); 

      request.setAttribute("edit_leadactivity", leadactivityli); 
      response.setRenderParameter("mvcPath","/html/Edit.jsp"); 

    } 

edit.jsp

<% 
LeadPojo leadobj = (LeadPojo) request.getAttribute("editlead"); 
List<LeadActivity> leadactli = (List<LeadActivity>)request.getAttribute("edit_leadactivity");  
List<ContactPojo> allcontacts = (List<ContactPojo>)request.getAttribute("allcontacts"); 
int notesize =0; 
    try{ 
     notesize = leadactli.size(); 
    }catch(Exception e){} 

%> 
<liferay-ui:search-container delta="10" emptyResultsMessage="No Progress Notes Were Found" rowChecker="<%= new RowChecker(renderResponse) %>" iteratorURL="<%= itURL %>"> 
    <liferay-ui:search-container-results results="<%= ListUtil.subList(leadactli,searchContainer.getStart(),searchContainer.getEnd()) %>" total="<%= notesize %>"> 
    </liferay-ui:search-container-results> 
    <liferay-ui:search-container-row className="com.axxonet.LeadActivity" modelVar="leadview" >   
     <liferay-ui:search-container-row-parameter name="recordid" value="<%= leadview.getId()%>"></liferay-ui:search-container-row-parameter> 
     <liferay-ui:search-container-row-parameter name="lead_id" value="<%= leadview.getLead_id()%>"></liferay-ui:search-container-row-parameter> 
     <liferay-ui:search-container-column-text name="Subject" value="<%= leadview.getSubject()%>">  
     </liferay-ui:search-container-column-text>  
     <liferay-ui:search-container-column-text name="Visit Note" value="<%= leadview.getCompany_Account()%>">  
     </liferay-ui:search-container-column-text> 
     <liferay-ui:search-container-column-text name="Date" value="<%=leadview.getPersonalVisit() %>"> 
     </liferay-ui:search-container-column-text>   
     <liferay-ui:search-container-column-text name="Created By" value="<%=leadview.getCreated_by()%>"/>    
     <liferay-ui:search-container-column-jsp align="right" path="/html/leadactivity.jsp" />  
    </liferay-ui:search-container-row> 
    <liferay-ui:search-iterator /> 
</liferay-ui:search-container> 

ответ

0

кажется, что вы не говорите своему классу портлетов, где должны перенаправлять при нажатии на кнопку Next в edit.jsp, поэтому по умолчанию он перенаправлять view.jsp и выполните doView(). Попытайтесь использовать custom iteratorURL для достижения этого.

Кроме того, я хотел бы указать, что вы, по-видимому, управляете целым списком, даже если результаты разбиты на страницы (так что это просто «разбиение на страницы переднего плана»): я надеюсь, что список не будет слишком расти ,

0

установить один параметр redirect в свой <portlet:renderURL> и установить его значение в соответствии с вашей страницей.

Теперь получите параметр redirect в способе рендеринга вашего класса портлетов.

Затем сравните это со значением, заданным в <portlet:renderURL>. Если return true, тогда получите свой recordId здесь, а затем получите два в соответствии с этим recordId и установите атрибуты.

, а затем верните путь к странице, например '/html/edit.jsp'. используя метод include или возвращаемую строку, если вы используете SPRING MVC или MVCRenderCommand на лифте 7.