JSTL in AEM | Community
Skip to main content
Level 3
May 1, 2026
Question

JSTL in AEM

  • May 1, 2026
  • 1 reply
  • 9 views

Hi all,

 

How do we use JSTL in AEM?

Any examples?

 

With Sightly, we have moved away from JSPs.

What is the relevance of JSTL in AEM?

 

Appreciate all your replies.

 

Thanks,

RK.

    1 reply

    VeenaVikraman
    Community Advisor
    Community Advisor
    May 1, 2026

    Hi ​@Rama_KrishnaNy 

    JSTL is a Standard Tag Library used inside JSP files for common things like loops, conditions and formatting. It was commonly used earlier when AEM components were built using JSP.

    In older AEM versions like CQ5 and early AEM 6, most components were JSP-based, so JSTL was widely used. Today, the important point is this: JSTL is still supported, but not recommended

    • JSP still works in AEM, including AEM as a Cloud Service
    • JSTL works only inside JSP files
    • You cannot use JSTL inside HTL files

    So nothing is technically blocked, but it is not something we should use for new development. With AEM 6, Adobe introduced HTL (Sightly), which became the standard templating language. HTL replaced JSP and JSTL because:

    • It is safer, as output is automatically escaped which helps prevent XSS
    • It keeps business logic out of the template
    • It is cleaner and easier to read
    • It aligns better with modern AEM and cloud setups

    Today, you will mostly see JSTL in legacy projects or in components that were never refactored. In many enterprise setups, this is just carry forward code.

    If you see JSTL in a current project, it is most likely legacy. Best practice is to refactor it into HTL components backed by Sling Models. This improves security and aligns better with AEM as a Cloud Service standards.

    Hope this helps

     

    Thanks

    Veena