Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

Pagination using content fragment list component

ashishkhadpe
Level 3
Level 3

Hi All,

 

Any suggestion on how we can implement the pagination logic using the core content fragment list component.

 

May be extending com.adobe.cq.wcm.core.components.models.contentfragment.ContentFragmentList class but not sure if we can do that.

 

Thanks in advance.

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution
Theo_Pendle
Correct answer by
Community Advisor
Community Advisor

Hello @ashishkhadpe,

The quick answer is no, you can't extend com.adobe.cq.wcm.core.components.models.contentfragment.ContentFragmentList, for two reasons:

  1. It's an interface (which allows extension, but that yon't help you implement pagination)
  2. The actual implementation, com.adobe.cq.wcm.core.components.internal.models.v1.contentfragment.ContentFragmentListImpl, is not exported in OSGi, so if you extend it and deploy your bundle, you'll get a dependency error.

If you want to "extend" the behavior of the you'll have to use the Delegation Pattern. You can find a tutorial explaining this pattern in AEM here. If you are using Lombok (and I think you should), you can use their @Delegate annotation to reduce on boilerplate code.

However, I assume that you are thinking of pagination as a front-end process (ie: no need to reload the entire page when you go from page 1 to page 2)? In that case, you'll have to implement the pagination logic in JS (using a web component for example, I recommend https://open-wc.org/). Then create a Sling Servletor Model that you can call to get X results at a time. 

Hope this helps! 🙂

View solution in original post

1 Reply
Theo_Pendle
Correct answer by
Community Advisor
Community Advisor

Hello @ashishkhadpe,

The quick answer is no, you can't extend com.adobe.cq.wcm.core.components.models.contentfragment.ContentFragmentList, for two reasons:

  1. It's an interface (which allows extension, but that yon't help you implement pagination)
  2. The actual implementation, com.adobe.cq.wcm.core.components.internal.models.v1.contentfragment.ContentFragmentListImpl, is not exported in OSGi, so if you extend it and deploy your bundle, you'll get a dependency error.

If you want to "extend" the behavior of the you'll have to use the Delegation Pattern. You can find a tutorial explaining this pattern in AEM here. If you are using Lombok (and I think you should), you can use their @Delegate annotation to reduce on boilerplate code.

However, I assume that you are thinking of pagination as a front-end process (ie: no need to reload the entire page when you go from page 1 to page 2)? In that case, you'll have to implement the pagination logic in JS (using a web component for example, I recommend https://open-wc.org/). Then create a Sling Servletor Model that you can call to get X results at a time. 

Hope this helps! 🙂

View solution in original post