我创建了MVC portlet。在doView方法中,我根据当前登录用户获取自定义列表(自定义)。
[Serializable]
class Kund
{
//Properties
public string Förnamn { get; set; }
public string Efternamn { get; set; }
public string Personnummer { get; set; }
public string GatuAdress { get; set; }
public string PostAdress { get; set; }
public string Telefon { get; set; }
public string Mobil { get; set; }
public List<Konto> kontolista
{
get; set;
}
public Kund()
{
kontolista = new List<Konto>();
}
// Metoder
public void BytaAdress(string nyttFörnamn, string nyttEfternamn, string nyGatuAdress, string nyTelefon, string nyMobil)
{
Förnamn = nyttFörnamn;
Efternamn = nyttEfternamn;
GatuAdress = nyGatuAdress;
Telefon = nyTelefon;
Mobil = nyMobil;
}
public void ÖppnaKonto(Konto nyttKonto)
{
kontolista.Add(nyttKonto);
}
public override string ToString()
{
return Förnamn + " " + Efternamn;
}
}
在view.jsp中,我使用delta 5创建了“ liferay-ui:search-container ”。当我点击“下一个”或“上一个“它获取了接下来的5条记录,并且在 view.jsp 中工作正常。
现在,用户从“操作”中选择“编辑”选项。现在获取当前记录ID并调用editRecord方法[在此方法中我再获取两个列出来自MVC类的基于所选记录的(联系和活动),然后加载到具有相应列表,对象和变量的其他“ edit.jsp ”。
在“edit.jsp”中还有两个liferay-ui:search-container's,当我点击“编辑中的'liferay-ui:search-container'中的'next'或'previous'按钮时。 jsp“它回到上一页,即执行doview方法。
如何从 liferay-ui:search-container 中获取“edit.jsp”中的下一组记录。两个 liferay-ui:搜索容器显示列表的总数,但不提取下一组记录。
@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);
}
edit.jsp
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");
}
答案 0 :(得分:0)
您似乎没有对您的portlet类说,当您单击Next
中的edit.jsp
按钮时必须重定向,因此默认情况下它会重定向到view.jsp
并执行doView( )。尝试使用custom iteratorURL来实现此目的。
此外,我想指出,即使结果是分页的,你显然也在管理整个列表(因此它只是一个“前端分页”):我希望列表不会增长太多。
答案 1 :(得分:0)
在redirect
中设置一个参数<portlet:renderURL>
,并根据您要呈现的页面设置其值。
现在获取portlet类的render方法中的redirect
参数。
然后将其与您在<portlet:renderURL>
中设置的值进行比较。如果返回true,则在此处获取您的recordId,然后根据此recordId获取两个并设置属性。
然后返回页面路径,如&#39; /html/edit.jsp' 。如果在liferay 7中使用SPRING MVC或MVCRenderCommand,则使用include方法或返回字符串。