आपको बाहरी पेजिनेशन सुविधा का उपयोग करना होगा। सबसे पहले, HTML टैग में निर्दिष्ट करें कि आप बाहरी पेजिनेशन का उपयोग कर रहे हैं। और एक ऑब्जेक्ट लागू करें org.displaytag.pagination.PaginatedList लागू करता है। अंत में, आपको डीएओ को लागू करना होगा जो वास्तव में केवल 15 पंक्तियों के लिए पूछताछ करता है और पेजिनेटेडलिस्ट लौटाता है।
1) अपने JSP की तरह इस
<display:table name="command" sort="external" partialList="true" size="${command.fullListSize}" pagesize="${command.objectsPerPage}">
<display:column property="name" title="name"/>
...
</display:table>
नोट यह निर्दिष्ट उस तरह बाहरी है दिखेगा।
2) org.displaytag.pagination.PaginatedList कार्यान्वयन।
public class PaginatedListImpl<T> implements PaginatedList{
private int fullListSize;
private int objectsPerPage;
private int pageNumber;
private String searchId;
private String sortCriterion;
private SortOrderEnum sortDirection;
private List<T> list;
//getters and setters
...
}
3) हाइबरनेट का उपयोग करके डीएओ कार्यान्वयन नमूना। आप इसे जेडीबीसी या कुछ भी कर सकते हैं लेकिन यह सुनिश्चित कर लें कि आप उचित क्रम में 15 पंक्तियां प्राप्त करने और PaginatedListImpl ऑब्जेक्ट को वापस करने के लिए सही क्वेरी कर रहे हैं।
@SuppressWarnings("unchecked")
public PaginatedListImpl<T> getPaginatedList(PaginatedListImpl paginatedList) {
int pageNum = paginatedList.getPageNumber();
final int objectsPerPage = paginatedList.getObjectsPerPage();
final int firstResult = objectsPerPage * pageNum;
String sortOrderCriterion = pagiantedList.getSortOrderCriterion();
String sortOrder = paginatedList.getSortOrder
String className = type.getName().substring(type.getName().lastIndexOf(".") + 1);
final StringBuilder fromClause = new StringBuilder("from " + className + " " + alias);
String orderByClause = new StringBuilder(" order by ").append(sortCriterion).append(" ").append(sortDirection);
final String hql = new StringBuilder().append(fromClause).append(orderClause).toString();
List<T> resultList = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
return session.createQuery(hql)
.setFirstResult(firstResult)
.setMaxResults(objectsPerPage)
.list();
}
});
Long count = (Long)getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
return session.createQuery("select count(*) " + fromClause).uniqueResult();
}
});
paginatedList.setFullListSize(count.intValue());
paginatedList.setList(resultList);
paginatedList.setPageNumber(pageNum+1);
paginatedList.setObjectsPerPage(objectsPerPage);
return paginatedList;
}
यह कहां से जांचें? – Sayan