Expand my Community achievements bar.

SOLVED

how to sort list of Page on basis of (title, template, lastModified)

Avatar

Level 4

Hi @All

 

I have List<Page> i need to do a ordering just like a list Component which uses Order By.

How i can achieve it?

 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @lone_Ranger, sorting lost of pages can be done in similar way to sorting list of any other java object, i.e you can implement Comparator. Below you can find simple Comparator implementation that will allow you to sort list of Pages by page title (jcr:title).

import com.day.cq.wcm.api.Page; 
import java.util.Comparator;
import java.util.Collections;
import java.util.List;

// List with pages
List<Page> pages

// sorting list of pages using custom comparator
Collections.sort(pages, new PageByTitleComparator());

// java comparator implementation
class PageByTitleComparator implements Comparator<Page> {
 
    @Override
    public int compare(Page p1, Page p2) {
        return p1.getTitle().compareTo(p2.getTitle());
    }
} 

 

View solution in original post

1 Reply

Avatar

Correct answer by
Community Advisor

Hi @lone_Ranger, sorting lost of pages can be done in similar way to sorting list of any other java object, i.e you can implement Comparator. Below you can find simple Comparator implementation that will allow you to sort list of Pages by page title (jcr:title).

import com.day.cq.wcm.api.Page; 
import java.util.Comparator;
import java.util.Collections;
import java.util.List;

// List with pages
List<Page> pages

// sorting list of pages using custom comparator
Collections.sort(pages, new PageByTitleComparator());

// java comparator implementation
class PageByTitleComparator implements Comparator<Page> {
 
    @Override
    public int compare(Page p1, Page p2) {
        return p1.getTitle().compareTo(p2.getTitle());
    }
}