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