How is the HTML that is generated by components represented in the repository?

kendalls5216292

11-06-2020

My knowledge of Sling and AEM is improving, but I'm still confused about a lot.

 

I have components and templates that produce HTML using JSP. The last part of the path looks like this in CRX/DE:

 

something/jcr:content/contentnode

 

contentnode has sling:resourceType=foundation/components/parsys

jcr:content has sling:resourceType=/apps/myapp/components/siteoutput/default/topicpage

something has jcr:primaryType=cq:Page

 

If I click on something, html is loaded into the browser with the last part of the path being something.html

 

So is the html only created when someone loads the node something into a web browser, or is it stored somewhere? I mean aside from any web server/web app caching.

Accepted Solutions (1)

Accepted Solutions (1)

vaibhavi_235640

11-06-2020

Hi @kendalls5216292 , 

Any template or components renders based on sling resolution. 

Templates:

Any template has its page rendering component. Basically when you create the page by selecting the template, page rendering component will load the resources defined ie html css js etc 

Component:

When the component is added on the page, again similar sling resolution happens and content will be loaded

 

In short to make you understand in your scenario sling resolution steps added below. 

  • Once you load the page on browser path will be taken from /content/xyz/xyz(leaving the extension) 
  • Once you navigate to the above path in crx you can find the sling:resource type where path will be pointed to page rendering component that is,/apps/components /<component-name>
  • Resources are loaded from the component (you can see sling resolution document to understand which JSP will be selected) 

Also, to answer your another question, it is not only the html format will be rendered always. AEM supports other rendering formate as well ex JSON

Adobe documentation will explain this in detail. 

Answers (2)

Answers (2)

akashk22786878

Employee

11-06-2020

Hi kendalls5216292 ,

 

Every page i.e a node of type cq:page in AEM is associated with a template that defines the page component used to render the page. This page component would contain the default HTML code which would be rendered when the page is called. You can refer to https://helpx.adobe.com/in/experience-manager/6-3/sites/developing/using/the-basics.html for understanding the basic sling script resolution.

Veena_Vikram

MVP

12-06-2020

@kendalls5216292 I get your issue here. Totally understand where you are struggling. Since I understand from your post that you are a beginner in AEM , I would first recommend you to go through the Basic AEM architecture. The answer to your entire question resides with the basic architecture of AEM. I searched for the official docs on this but couldn't find it in google search so sharing this instead. https://www.zarantech.com/blog/aem-architecture-explained/ it's the same.

 

Now coming back to your question, the issue you are struggling here to understand is called Sling Resolution or Sling Resource Resolution. I had recently tried to explain the same with some example in my Linkedin

I would recommend you to read this and let me know any more question on this and we will be happy to help. 

 

Happy development 😉

Veena ✌