下面介紹一下,我所採用的兩種方法來實現。
第一種:
<liferay-ui:search-container delta='<%= GetterUtil.getInteger(prefs.getValue("rowsPerPage", "5")) %>' emptyResultsMessage="root-empty-results-message">
<liferay-ui:search-container-results
results="<%= FirstlevelLocalServiceUtil.getFirstlevelsByGroupId(scopeGroupId, searchContainer.getStart(), searchContainer.getEnd()) %>"
total="<%= FirstlevelLocalServiceUtil.getFirstlevelsCountByGroupId(scopeGroupId) %>" >
</liferay-ui:search-container-results >
<liferay-ui:search-container-row className="com.navigation.model.Firstlevel" keyProperty="firstlevelId" modelVar="firstlevel" escapedModel="<%= true %>" >
<liferay-ui:search-container-column-text name="name" value="<%= firstlevel.getName() %>" />
<liferay-ui:search-container-column-jsp align="right" path="/html/config/firstlevel_actions.jsp" />
</liferay-ui:search-container-row>
<liferay-ui:search-iterator />
</liferay-ui:search-container>
在上述代碼中,delta屬性是爲了控制所顯示的行數,此處默認顯示5行,如果超過則顯示分頁(該功能爲search-container自動提供)。(prefs.getValue("rowsPerPage", "5"), 其中prefs需要事先定義如下:
<%
PortletPreferences prefs = renderRequest.getPreferences();
%>
另外兩個屬性results和total是從數據庫中所取出的結果集及總數。
<liferay-ui:search-container-column-text name="name".......>中,name 爲所顯示的列名稱。
<liferay-ui:search-container-column-jsp.......>可以添加對應的圖片或者按鈕,當我們點擊時,可以進行跳轉。
最重要的是<liferay-ui:search-iterator /> ,該句是爲了將所取出的數據逐條顯示到界面。類似於c++中vector的iterator功能。
第二種方法:
<%
PortletURL portletURL = renderResponse.createRenderURL();
List<String> headerNames = new ArrayList<String>();
headerNames.add("name"); //增加列名
headerNames.add("Operate"); //增加列名
// create search container, used to display table
SearchContainer searchContainer = new SearchContainer(renderRequest,null, null,SearchContainer.DEFAULT_CUR_PARAMSearchContainer.DEFAULT_DELTA,
portletURL,headerNames, "There No Result To Display");
searchContainer.setTotal(petsCount);
List<ResultRow> resultRows = searchContainer.getResultRows();
List<Firstlevel> results = FirstlevelLocalServiceUtil.getFirstlevelsByGroupId(scopeGroupId, searchContainer.getStart(), searchContainer.getEnd());
for (int i = 0; i < results.size(); i++) {
Firstlevel getGirstlevel = (Firstlevel)results.get(i);
ResultRow row = new ResultRow(getGirstlevel, getGirstlevel.getFirstlevelId(), i);
row.addText(getGirstlevel.getName(), ""); //將數據加入
row.addJSP("/html/config/firstlevel_actions.jsp", application, request, response); //將要跳轉的頁面加入
resultRows.add(row); //將顯示的行加入
} %>
這段代碼的功能,將所有的數據信息從數據庫中取出並進行的存儲。剩下所要進行的操作就是將其顯示出來。
那麼使用下面代碼
<liferay-ui:search-iterator searchContainer="<%= searchContainer %>" />
===========================================================
爲了將顯示的結果數和分頁功能去掉的話,在searchContainer中增加paginate="<%=false%>"即可,如下:
<liferay-ui:search-iterator paginate="<%=false%>" searchContainer="<%= searchContainer %>" />
轉自 http://www.cnblogs.com/zhiliang/archive/2013/02/08/2909159.html